zeroize: possible UB in `Zeroize` implementation for `Option<T>`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza en zeroize/src/lib.rs alrededor de la línea 330 y reproduce el comportamiento reportado usando el ejemplo enlazado de Rust Playground o Miri. Determina un enfoque sólido para la implementación de Option y verifica que el comportamiento resultante ya no desencadene el error de comportamiento indefinido reportado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Originally filed by @jessa0 as https://github.com/iqlusioninc/crates/issues/782:
It seems the
Zeroizeimplementation forOption<T> where T: Zeroizehas language-level UB here:I believe, as a
repr(Rust)enum, the memory layout and set of valid bit-patterns forOptionis not defined, and that setting an enum's storage to an invalid bit-pattern while a reference to it exists, even if the value is never read, is instant language-level UB. The documentation forOptiondoes mention guarantees for several special cases, but theNonecase still isn't defined for many of those cases, and theZeroizeimplementation is more generic than that. Here's an example of a miri error in such a situation, that scottmcm came up with on URLO here.
- Lenguaje dominante
- Rust
- Estrellas
- 674
- Forks
- 170
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 10
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 RustCrypto/utils
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
RustCrypto/utils#1546 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
RustCrypto/utils#1537 · 7 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
RustCrypto/utils#1534 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
RustCrypto/utils#1529 · 4 comentarios ·
-
x86: guard CPUID leaf 7 by the maximum basic leaf; AVX detection may need XMM+YMM XCR0 state Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
RustCrypto/utils#1510 · 1 comentario ·
Todos los issues de RustCrypto/utils
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug core
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Abiertofuzz
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
ClickHouse/ClickHouse#122114 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
linebender/vello_svg#90 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100