arm_semihosting.zig – could @constCast cause a HardFault on read‑only memory?
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 48/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- zig
- Domaine
- embedded-iot
Piste de recherche
Read core/src/core/arm_semihosting.zig lines 89–96 and trace callers to determine whether the data slice can refer to read-only memory or is guaranteed writable. Check how the function modifies and restores the final byte, then assess whether the current behavior is safe for flash-backed input. Done means the safety assumption is established and, if needed, a safe approach is agreed on.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
core/src/core/arm_semihosting.zig
Lines: 89–96
Hi,I was looking at this piece of code and I have a question about safety.
The function receives data as []const u8, but then uses @constCast to turn it into []u8 and modifies the last byte (first setting it to 0, later restoring the original value).
In embedded systems, the caller might pass a string literal that lives in flash (read‑only memory). If that happens, wouldn’t that write operation trigger a HardFault? Or is the caller expected to always provide a buffer in RAM?
I’m not sure if I’m missing something – maybe the design assumes that the input is always writable? If not, would it be safer to copy the data to a temporary buffer before modifying it?
I’d appreciate your thoughts on this. Thanks!
- Langage dominant
- Zig
- Étoiles
- 2.3k
- Forks
- 198
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 37
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ZigEmbeddedGroup/microzig
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
ZigEmbeddedGroup/microzig#1086 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 69/100
ZigEmbeddedGroup/microzig#1085 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
ZigEmbeddedGroup/microzig#1061 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
ZigEmbeddedGroup/microzig#1059 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
regz: AVR peripherals generated at address 0 when the register-group name matches the module (ATDF)Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
ZigEmbeddedGroup/microzig#1072 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de ZigEmbeddedGroup/microzig
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
Arch: xtensa Area: Board support Area: Build system OS: Linux Type: Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
device support request
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
zigpy/zha-device-handlers#5461 ·
Les mainteneurs répondent en général sous 4 jours
-
external converter
Difficulté 1/5 Moins d'une heure Accessibilité débutants 62/100
Koenkk/zigbee2mqtt#33396 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour