arm_semihosting.zig – could @constCast cause a HardFault on read‑only memory?
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- zig
- Bereich
- embedded-iot
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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!
- Vorherrschende Sprache
- Zig
- Sterne
- 2.3k
- Forks
- 198
- Ø Merge
- 2 T. 18 Std.
- Gemergte PRs (30 T.)
- 36
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ZigEmbeddedGroup/microzig
-
msp430
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
ZigEmbeddedGroup/microzig#1101 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
ZigEmbeddedGroup/microzig#1086 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
ZigEmbeddedGroup/microzig#1061 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
ZigEmbeddedGroup/microzig#1059 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
ZigEmbeddedGroup/microzig#1069 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in ZigEmbeddedGroup/microzig
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
sususweet/midea_auto_cloud#285 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug system: adam
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
FujiNetWIFI/fujinet-config#358 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
-
Type:Bug
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
BrunoLevy/learn-fpga#180 · 2 Kommentare ·