freestanding_check: hosted-RNG check misses rand/srand in headers, macro aliases and function pointers
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Domaine
- build-system, tooling
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- C
- Étoiles
- 3
- Forks
- 7
- Merge moyen
- 6 h 32 min
- PR mergées (30 j)
- 285
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
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 InauguralSystems/EigenScript
-
good first issue needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
InauguralSystems/EigenScript#2347 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
InauguralSystems/EigenScript#2335 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:embed kind:bug
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
InauguralSystems/EigenScript#2311 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:gates kind:gate-defect
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
InauguralSystems/EigenScript#2305 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:ci bug found-by:duet-audit
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
InauguralSystems/EigenScript#2283 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de InauguralSystems/EigenScript
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
FujiNetWIFI/fujinet-config#379 ·
Les mainteneurs répondent en général sous 1 jour
-
Ship /Local/Applications, the Local domain's Applications folderPeut-être pris @pkgdemon l’a pris aujourd’hui. Ouvertearea:base enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 94/100
nextbsd/nextbsd-userland#612 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
zephyrproject-rtos/zephyr#125543 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
colbymchenry/codegraph#3277 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100