freestanding_check: hosted-RNG check misses rand/srand in headers, macro aliases and function pointers
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- build-system, tooling
Direzione di ricerca
Start in tools/freestanding_check.sh, where the hosted-RNG stage greps src/.c and extensions/.c for rand( and srand(), and read tools/freestanding_allowlist.txt to see why stage 1 passes. The proposed fix replaces the textual check with an nm -u scan of the hosted objects built by the gate's rows, so the design needs deciding first. Done when the four planted cases (static inline in a header, macro alias, function pointer, untracked file) make make freestanding-check exit nonzero, and src/freestanding/ stays green.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The hosted-RNG half of tools/freestanding_check.sh (#1818; fail-closed fix in the PR for #2308) searches only tracked src/*.c and extensions/*.c, outside src/freestanding/, for the literal spelling rand( / srand(. The following reach libc rand/srand from hosted runtime code without being seen:
- A call inside a
static inlinefunction, or a macro body, in a header (src/*.h,extensions/*.h). - A call through a macro alias, e.g.
#define RNG randand thenRNG(), or through a function pointer (int (*r)(void) = rand;). - Untracked files.
git grepsearches the index, so a new file that has not beengit added is skipped in a local run. CI only sees committed files, so this matters only locally.
Stage 1 cannot catch any of these, because rand/srand are in tools/freestanding_allowlist.txt.
Possible root fix: check the symbol level instead of the spelling. Every hosted object built by the gate's rows would have no undefined reference to rand/srand (nm -u over the objects that are not freestanding), so headers, macros and pointers are all covered. The textual grep could stay as a fast first pass.
Found while reviewing the hq#58 fix (https://github.com/InauguralSystems/hq/issues/58).
Done when
- A planted
static inline int r(void) { return rand(); }in a header that a runtime.cfile includes and calls makesmake freestanding-checkexit nonzero. - A planted
#define RNG randplusRNG()insrc/*.cmakes it exit nonzero. - A planted
int (*p)(void) = rand;insrc/*.cmakes it exit nonzero. -
src/freestanding/keeps its ownrandimplementation, and that case is still green.
Generated by Claude Code
- Lingua principale
- C
- Stelle
- 3
- Fork
- 7
- Merge medio
- 6h 32m
- PR unite (30g)
- 285
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di InauguralSystems/EigenScript
-
good first issue needs-triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
InauguralSystems/EigenScript#2347 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
InauguralSystems/EigenScript#2335 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:embed kind:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
InauguralSystems/EigenScript#2311 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:gates kind:gate-defect
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
InauguralSystems/EigenScript#2305 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:ci bug found-by:duet-audit
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
InauguralSystems/EigenScript#2283 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di InauguralSystems/EigenScript
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
FujiNetWIFI/fujinet-config#379 ·
I maintainer di solito rispondono entro 1 giorno
-
Ship /Local/Applications, the Local domain's Applications folderForse già presa @pkgdemon l’ha presa oggi. Apertaarea:base enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 94/100
nextbsd/nextbsd-userland#612 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
zephyrproject-rtos/zephyr#125543 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
colbymchenry/codegraph#3277 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100