Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

path_filestat_get returns inval for empty paths

Abierto Apto para principiantes
#325 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
70/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
c

Línea de trabajo

El error está en la comprobación de longitud de la ruta dentro de uvwasi__resolve_path en src/path_resolver.c, alrededor de la línea 457, que enlaza el issue. Lee esa comprobación y mira por qué un input_len de cero provoca un desbordamiento en input_len - 1. Después reproduce path_filestat_get con una ruta vacía y confirma que devuelve UVWASI_EINVAL en lugar de UVWASI_ENOENT. Está terminado cuando una ruta vacía devuelve noent, igual que wasmtime, y las pruebas de ruta existentes siguen pasando.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
C
Estrellas
272
Forks
60
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nodejs/uvwasi

Todos los issues de nodejs/uvwasi

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.