Estudiante de posgrado de 21 años soluciona un error de Linux que llevaba 20 años sin resolverse

Kamila Szewczyk corrigió el fallo en Enlightenment E16, el gestor de ventanas antiguo de Linux que tenía inconsistencias visuales. Ahora, dos décadas después, se ha solucionado.
Enlightenment E16, uno de los gestores de ventanas clásicos del escritorio Linux, arrastraba desde 2006 un fallo que podía bloquear por completo la interfaz al abrir ventanas con títulos largos.
El problema, oculto en el código que recorta esos nombres para que quepan en la barra de la ventana, ha sido identificado y corregido por Kamila Szewczyk, una estudiante de posgrado de 21 años.
Un fallo raro, pero capaz de congelar el escritorio
El error no afectaba al kernel ni a los grandes entornos de escritorio actuales, sino a Enlightenment E16, una pieza veterana pero todavía mantenida que algunos usuarios siguen prefiriendo por su ligereza y flexibilidad.
Al abrir determinadas aplicaciones o documentos con nombres de ventana muy largos, el gestor dejaba de responder y el escritorio parecía congelado, obligando a reiniciar la sesión.
La causa estaba en una función que se encarga de abreviar los títulos cuando no caben completos en el espacio disponible.
E16 intentaba calcular el punto exacto donde cortar el texto e insertar puntos suspensivos, de forma que se viera el principio y el final del nombre.
Para ello utilizaba una aproximación numérica que, en un rango concreto de longitudes, no llegaba a converger. En esos casos, el cálculo entraba en un bucle interno sin salida y el gestor de ventanas quedaba atrapado en esa operación.
No se trataba de un fallo fácil de encontrar, ya que hacía falta una combinación muy específica de longitud de título y tamaño de ventana para dispararlo, algo que explica por qué el bug ha sobrevivido casi dos décadas sin que nadie lo corrigiera.
El parche que cierra un problema histórico

La corrección de Kamila se centra en tres puntos clave: limitar el número de iteraciones permitidas en ese cálculo, ajustar la lógica que provocaba que el algoritmo "rebotara" entre dos resultados sin avanzar y blindar un posible caso de división por cero.
Con estos cambios, el gestor deja de depender de que la aproximación numérica acierte siempre y añade salvaguardas para evitar que un error de cálculo se convierta en un bloqueo total del entorno gráfico.
El parche se ha integrado ya en la rama estable de Enlightenment E16, de modo que las nuevas compilaciones del gestor no reproducen este comportamiento.
Para los usuarios que siguen confiando en E16 como entorno principal, la actualización elimina un vector de fallo capaz de arruinar una sesión de trabajo por algo tan trivial como el nombre de una ventana.
La existencia de un bug así durante tanto tiempo no implica que Enlightenment E16 sea inseguro en sentido amplio, pero sí sirve como recordatorio de que incluso componentes considerados maduros pueden tener rincones sin explorar.
El código que recorta nombres de ventana no es la parte del sistema donde se concentra la atención de los desarrolladores; precisamente por eso, pequeños errores lógicos pueden pasar años sin ser examinados con lupa.
Al mismo tiempo, la forma en que se ha resuelto el problema muestra una de las fortalezas del modelo abierto. El descubrimiento fue gracias a una usuaria que utiliza el software a diario y decidió seguir el rastro del código hasta entender qué ocurría y cómo solucionarlo.
