Un bug historic dans enlightenment e16, résolu par une étudiante de 21 ans

Le gestionnaire de fenêtres clés du bureau Linux, Enlightenment E16, supportait depuis 2006 un défaut qui pouvait bloquer complètement l'interface en ouvrant des fenêtres avec des titres longs.

Une erreur rare mais capable de geler l'espace de travail

L'anomalie, cachée dans le code qui coupe ces noms pour les faire entrer dans la barre de la fenêtre, a été identifiée et corrigée par Kamila Szewczyk, une étudiante en master de 21 ans.

Le problème ne touchait pas au noyau ni aux environnements de bureau actuels, mais à Enlightenment E16, une pièce de mobilier ancienne mais toujours entretenue que certains utilisateurs préfèrent pour sa légèreté et sa flexibilité.

Lorsqu'il s'agit d'ouvrir certaines applications ou documents avec des noms de fenêtres très longs, le gestionnaire laissait de côté les événements et le bureau semblait congelé, obligeant à redémarrer la session.

La cause se cachait dans une fonction de troncature de texte

La cause se cachait dans une fonction de troncature de texte

E16 tentait de calculer le point précis où couper le texte pour l'adapter au espace disponible, en utilisant une approximation numérique.

Or, dans un certain domaine de longueurs, cette approche ne convergeait pas, plongeant le gestionnaire dans un boucle interne sans issue, ce qui le rendait bloqué.

Cette erreur n'était pas facile à découvrir, car il fallait une combinaison très spécifique de longueur de titre et de taille de fenêtre pour l'activer, ce qui explique pourquoi le bug a survécu presque deux décades sans être corrigé.

Un patch pour un problème historique

La correction de Kamila se concentre sur trois points clés : limiter le nombre d'itérations autorisées dans ce calcul, ajuster la logique qui provoquait que l'algorithme