Un bug vétuste dans e16, corrigé par une étudiante de 21 ans

La communauté des utilisateurs de l'environnement de bureau Linux E16 a connu un soulagement récent avec la correction d'un bug qui persistait depuis 2006. Le problème, connu sous le nom de « long title freeze », se produisait lorsque des fenêtres avec des titres trop longs étaient ouvertes, ce qui faisait cracher l'interface et plaçait le système dans un état d'immobilité.

La cause du bug réside dans la gestion des titres de fenêtre

La cause du bug réside dans la gestion des titres de fenêtre

L'erreur résidait dans une fonction qui s'occupait de tronquer les titres pour les faire tenir dans la barre de titre. Pour cela, elle utilisait une approximation numérique pour déterminer le point où couper le texte et insérer des points de suspension. Cependant, dans un certain écart de longueurs, cette approximation ne convergeait pas, ce qui entraînait une boucle infinie et faisait Planter E16.

La jeune étudiante polonaise Kamila Szewczyk, âgée de 21 ans et en train de suivre des études de master, a identifié et corrigé ce défaut. Sa solution consiste à limiter le nombre d'itérations du calcul, à ajuster la logique qui faisait rebondir l'algorithme entre deux résultats sans avancer, et à ajouter des garanties contre une division par zéro.

Le patch a été intégré dans la branche stable d'E16, ce qui signifie que les nouvelles compilations du gestionnaire ne reproduiront plus ce comportement problématique. Pour les utilisateurs qui privilégient encore E16 comme environnement principal, cette mise à jour élimine un facteur de rupture potentiel, même si le bug en question n'affectait pas le noyau ni les grands environnements de bureau actuels.

La découverte et la résolution de ce problème historique illustrent les avantages du modèle open-source. Une utilisateur régulière a décidé de suivre la piste du code jusqu'à comprendre ce qui se passait et comment le corriger. Cela montre que même les composants anciens et peu explorés d'un système peuvent encore être améliorés, et que la communauté des développeurs et des utilisateurs peut travailler ensemble pour améliorer la sécurité et la stabilité du logiciel.