- El autor estaba lidiando con un problema de depuración en un proyecto que incluía
gdbserver y una aplicación multihilo ejecutándose en la arquitectura PowerPC32.
- El problema era que se perdía la conexión con
gdbserver, por lo que ya no podía controlar la sesión de depuración.
- Tras investigar y analizar el caso, el autor encontró un hilo de correos que señalaba el commit exacto que causó el problema.
- El autor pasó 3-4 días leyendo las descripciones de commits relacionadas con la arquitectura PowerPC y los cambios alrededor de
task_struct, mientras intentaba averiguar si el problema se había resuelto en versiones posteriores del kernel.
- El autor usó varias herramientas y técnicas, como mover
thread_struct, inspeccionar el layout de task_struct con pahole y usar ftrace para determinar cuándo se planificaban los hilos del proceso depurado.
- El autor descubrió que el problema podía ser de corrupción de memoria, ya que el hilo bloqueado solo se planificaba una vez, a diferencia de los demás.
- El autor usó breakpoints de hardware en Linux e implementó un módulo del kernel de Linux para colocar un breakpoint de hardware en el campo
__state y averiguar quién escribía en él.
- El autor descubrió que el problema era un desbordamiento de búfer en
ptrace_put_fpr (usado por la API POKEUSER) que sobrescribía campos críticos de task_struct, como __state.
- Como este problema podía derivar en un issue de seguridad, el autor envió un parche al equipo de seguridad del kernel de Linux (
security@kernel.org) para solucionarlo.
- En lugar de aceptar el parche del autor, el mantenedor de PowerPC, Michael Ellerman, implementó su propia versión del arreglo.
- El autor sintió que su trabajo no fue reconocido correctamente, se sintió menospreciado y enojado. Solo recibió la etiqueta
Reported-by.
- La primera contribución del autor al kernel fue una experiencia llena de frustración y desaliento, marcada por conversaciones con personas que no parecían considerar importante dar el reconocimiento adecuado al trabajo ajeno.
1 comentarios
Opiniones en Hacker News