`unsafe_{latin,long,float}_compare` have an `assert` that assumes `PyObject_RichCompareBool` can't fail
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 35.9k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Crash report
What happened?
Added in https://github.com/python/cpython/commit/1e34da49ef22004ca25c517b3f07c6d25f083ece, we assert that:
https://github.com/python/cpython/blob/eab7dbda3b7502f0a952901a80fb5e628ccd7a28/Objects/listobject.c#L2858
However, PyObject_RichCompareBool can fail and return -1 on error, triggering the assert.
Found by OSS Fuzz in #444686879.
CC @rhettinger and @tim-one
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Output from running 'python -VV' on the command line:
No response
Linked PRs
- gh-148309
- gh-151820
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.
Línea de trabajo
Comienza en Objects/listobject.c, en el assert de unsafe_{latin,long,float}_compare, y revisa la llamada a PyObject_RichCompareBool documentada en el informe. Reproduce o inspecciona el caso de OSS-Fuzz de #444686879 y verifica después que el comportamiento relevante ya no active un assert cuando la comparación devuelve un error.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c, python
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 25/100