Don't rely on path_max
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
- 45/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- c, linux
- Ambito
- cli, operating-systems
Direzione di ricerca
Inizia individuando ogni uso di PATH_MAX relativo a realpath(3) e readlink(2), quindi esamina gli alias static inline di realpath per Windows e FF_EXE_PATH_LEN di terminalshell_linux. Confronta il comportamento di allocazione su Hurd e Linux e valuta se degli helper condivisi possano sostituire le condizioni sparse; il lavoro è completato quando l’hack PATH_MAX di Hurd non è più necessario senza compromettere questi percorsi specifici della piattaforma.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
Following up to my comment in https://github.com/fastfetch-cli/fastfetch/issues/1895#issuecomment-3206602801 on PATH_MAX.
I would like to get rid of the -DPATH_MAX=4096 hack for hurd.
I had a look where PATH_MAX is used and it is used only for realpath(3) and readlink(2) to allocate a buffer that will be "big enough".
For realpath glibc will allocate a buffer for us with the result when the output is NULL. (this case is not specified by posix). I don't think this is something that other libcs implement though.
The man page for readlink also suggests to not rely on PATH_MAX and suggests to use stat.st_size from lstat and malloc a buffer manually.
The problem with this approach is that while lstat on /proc returns sensible values on hurd e.g. on linux the size is 0 so the PATH_MAX approach is still needed.
Also there are currently at least 2 static inline realpath aliases for windows.
terminalshell_linux has a FF_EXE_PATH_LEN instead.
Before I start to make this work would it make sense to consolidate this into new helpers to not litter #ifdef PATH_MAX everywhere?
- Lingua principale
- C
- Stelle
- 24.9k
- Fork
- 911
- Merge medio
- 17h 41m
- PR unite (30g)
- 20
Preparare l'ambiente
- Nessun Dockerfile né 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 fastfetch-cli/fastfetch
-
[LOGO] kairo linuxApertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fastfetch-cli/fastfetch#2650 ·
I maintainer di solito rispondono entro 1 giorno
-
[LOGO] Keenetic OSForse già presa @Ivan-Alone l’ha presa 4 giorni fa. Apertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fastfetch-cli/fastfetch#2646 ·
I maintainer di solito rispondono entro 1 giorno
-
[LOGO] Darkian LinuxForse già presa @lordpipon l’ha presa 5 giorni fa. Apertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
fastfetch-cli/fastfetch#2644 ·
I maintainer di solito rispondono entro 1 giorno
-
[LOGO] ArmadaOSForse già presa @Tyagiquamar l’ha presa 2 giorni fa. Apertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fastfetch-cli/fastfetch#2641 ·
I maintainer di solito rispondono entro 1 giorno
-
[LOGO] OxyohanOSApertalogo request
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
fastfetch-cli/fastfetch#2638 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di fastfetch-cli/fastfetch
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
compiler-explorer/compiler-explorer#9272 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
semantic-reasoning/wirelog#2163 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
Xinyuan-LilyGO/T-Display-S3#352 · 3 commenti ·
-
documentation severity/minor
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno