Pular para o conteúdo principal
usedby

Enlightenment E16: loops infinitos determinísticos na lógica legada de janelas

Apesar da idade, ele continua sendo um favorito cult pela personalização extrema e pelo desempenho em hardware modesto.

O pitch

Apesar da idade, ele continua sendo um favorito cult pela personalização extrema e pelo desempenho em hardware modesto.

Por dentro

O branch E16 continua ativo sob o mantenedor Kim “kwo” Woelders, que lançou a versão 1.0.31 no início de 2026 (Fonte: ArchWiki). No entanto, um bug de travamento determinístico foi descoberto este mês em uma implementação de 20 anos do algoritmo de Newton usada para truncar texto (Fonte: iczelia.net).

Essa falha específica na lógica de Newton-Raphson faz o gerenciador de janelas entrar em loop infinito ao processar certos títulos de janela. A correção limita o número de iterações de Newton a 32 e aplica arredondamento para baixo para evitar cálculos de largura zero ou negativa (Fonte: notas do patch no iczelia.net).

A base de código acumula uma dívida técnica considerável, com componentes centrais que remontam à passagem de Carsten “Rasterman” Haitzler pela VA Linux no fim dos anos 1990 (Fonte: HN). Embora o bug de travamento imediato tenha um caminho claro de correção, as implementações matemáticas subjacentes não têm verificações de segurança modernas.

Não sabemos se um CVE formal será atribuído a esse vetor de negação de serviço, já que nenhum ID oficial havia sido registrado até 15 de abril de 2026 (Fonte: iczelia.net). Além disso, não há registro público de uma auditoria de segurança abrangente da base de código DR16 na última década.

Em 2026, o E16 enfrenta uma ameaça existencial terminal: a migração de todo o setor para o Wayland.

Nossa opinião

O E16 é uma peça fascinante de arqueologia de software, mas você não deveria rodá-lo em uma máquina de produção em 2026. Esse bug de Newton-Raphson prova que a matemática legada é uma bomba-relógio: foram precisas duas décadas para que uma string específica finalmente disparasse um loop que congela toda a interface. Se você gosta de depurar código C de 30 anos por nostalgia, vá em frente, mas para qualquer trabalho sério a dependência do X11 e de um único mantenedor é um risco inaceitável.