[interpreter] Text lexer accepts surrogate escapes and crashes on escapes past U+10FFFF
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #2295 de @rossberg — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 66/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- backend
Línea de trabajo
Empieza por el caso de escape u del lexer de cadenas de texto e inspecciona cómo llama a Utf8.encode; el issue no indica ningún archivo ni ruta de pruebas. Comprueba los ejemplos proporcionados para valores sustitutos y fuera de rango, y luego ejecuta las pruebas pertinentes del intérprete. Se considera terminado cuando ambas entradas indiquen una cadena mal formada, en vez de producir UTF-8 no válido o una excepción no capturada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
\u{n} is well-formed only for n < 0xD800 or 0xE000 <= n < 0x110000.
Surrogates are accepted and encoded as invalid UTF-8:
(module (memory 1) (data (i32.const 0) "\u{D800}"))
This parses, and the data segment holds ED A0 80. It should be malformed.
Escapes past U+10FFFF crash the interpreter instead of reporting a syntax error:
(assert_malformed (module quote "(data \"\\u{110000}\")") "malformed UTF-8")
uncaught exception Wasm.Utf8.Utf8
The u case of the string lexer calls Utf8.encode with no check and no handler. encode doesn't reject surrogates and raises Utf8 for n >= 0x110000.
Tested at 340650f.
- Lenguaje dominante
- WebAssembly
- Estrellas
- 3.5k
- Forks
- 541
- Merge medio
- 23 h 36 min
- PR fusionados (30 d)
- 26
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de WebAssembly/spec
-
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
WebAssembly/spec#2302 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 53/100
WebAssembly/spec#2301 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
il2al: host function rules become two independent conditionals and ignore the new store `s'`Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
WebAssembly/spec#2279 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
WebAssembly/spec#2258 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[js-api] A mutable global import allocates a const global before LinkErrorPosiblemente ocupada @chicoxyzzy la tomó hace 19 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
WebAssembly/spec#2253 ·
Los mantenedores suelen responder en 1 día
Todos los issues de WebAssembly/spec
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
NanmiCoder/dsh-agent-teams#277 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
Lakr233/vphone-cli#742 ·
Los mantenedores suelen responder en 1 día
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverAbiertodoc-audit enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Kozea/Radicale#2301 · 2 comentarios ·
Los mantenedores suelen responder en 1 día