Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

path_filestat_get returns inval for empty paths

Aperta Adatta ai principianti
#325 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@dannyward630 ci sta già lavorando.

Dal 17/10/2026.

  • #327 di @dannyward630 — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
c

Direzione di ricerca

Il bug si trova nel controllo sulla lunghezza del percorso all'interno di uvwasi__resolve_path in src/path_resolver.c, intorno alla riga 457, a cui rimanda la issue. Leggi quel controllo e capisci perché un input_len pari a zero va in underflow in input_len - 1. Poi riproduci path_filestat_get con un percorso vuoto e verifica che restituisca UVWASI_EINVAL invece di UVWASI_ENOENT. È completato quando un percorso vuoto restituisce noent, come wasmtime, e i test sui percorsi esistenti continuano a passare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

For empty paths, that is, path represented by a buffer with zero length (NULL-terminator is not included into a string length, right?), path_filestat_get returns inval instead of noent. The same call executed by wasmtime returns noent.

Apparently, it is a result of path length check performed by the uvwasi__resolve_path:

  if (input_len != strnlen(input, input_len - 1) + 1) {
    err = UVWASI_EINVAL;
    goto exit;
  }

For zero length strings, input_len - 1 underflows and the checked condition is unlikely to met.

See https://github.com/nodejs/uvwasi/blob/0820128569533c855d60c0f6382acbb14aa62ad2/src/path_resolver.c#L457

Lingua principale
C
Stelle
272
Fork
60
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nodejs/uvwasi

Tutte le issue di nodejs/uvwasi

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.