News: 1776272995

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Decades-old Linux UI bug fixed by dev younger than the window manager

(2026/04/15)


No one can tell software developer Kamila Szewczyk that newer is better: She just fixed a 20-year-old bug in Enlightenment E16, the old-school Linux window manager she favors partly because, she tells us, it is actually finished software.

For those unfamiliar, E16 is the long-lived DR16 branch of Enlightenment, a [1]still-developing Linux window manager that first hit the FOSS space in 1997. E16 was introduced in 1999 and is still maintained to this day by a dedicated band of devs like Szewczyk, who noted in [2]her writeup on the bug she discovered that she is one of a small community of "hardcore enthusiasts" who still [3]use and maintain the aged window manager.

Szewczyk, 21, explained in her blog that she found the bug while doing some last-minute work on a slide deck to be used in a course she's teaching as a graduate student at Saarland University in Germany.

[4]

"I had a couple of PDFs with lecture slides and an exercise sheet typeset in LaTeX. At some point, I opened one of them in Atril, and the entire desktop froze," Szewczyk wrote. It happened repeatedly until she sussed out the root cause: E16 was hanging whenever it tried to truncate the overly long name of the file she was working with.

[5]

[6]

After a bit of digging, Szewczyk determined that E16 had implemented its window-title truncation algorithm without an iteration limit. Without that limit, the middle-ellipsis search could bounce endlessly between truncation points, freezing the desktop while it tried to settle on a title.

"Any window whose WM_NAME is long enough that the middle-ellipsis search falls into the overshoot regime reproduces this," Szewczyk explained.

[7]

The fix, which she published as a patch against E16 1.0.30, the version released in August 2024, makes three changes to prevent the issue from happening again: She capped iterations at 32, prevented negative corrections from producing a degenerate overlap, and guarded against a divide-by-zero error.

If bugs like these exist in 20-year-old code, imagine what lurks in modern slop

This is a bug that, if it were to be found in a modern window manager or desktop environment, could be a denial of service route that, while it might not destroy data or lock down a server, could still be highly inconvenient.

"No doubt similar bugs are lurking in the millions of lines of code that power modern desktop environments and window managers," Szewczyk told The Register in an email.

[8]How to get free software from yesteryear's IT crowd – trick code into thinking it's running on a rival PC

[9]Open source isn't a tip jar – it's time to charge for access

[10]The most durable tech is boring, old, and everywhere

[11]Open source devs consider making hogs pay for every download

She has a bit of a bias against those modern desktop environments and window managers, though. She believes the modern software development philosophy those products adhere to is one that is ultimately counterproductive and less safe for users.

"I feel like we've lost the plot a bit," Szewczyk told us. "We are not nearly eager enough to acknowledge that software can be more or less finished at some point."

Like E16: Sure, it's had new versions released in its decades of life, but those are mostly bug fixes and a few basic changes, not a glut of new, unnecessary features.

"We keep shipping instability we don't need to ship," Szewczyk opined. For users or administrators caught chasing every new thing that ships, she says stop it - just stay on a recent or extended support release, especially of software that tends to ship with a lot of bugs, like web browsers.

[12]

"The amount of bugs in private checkouts of crusty old software maintained by competent developers will monotonically decrease," Szewczyk said in her blog post.

That same logic can be applied to extended releases of larger projects that have a greater user base than, say, E16: Live with the features you have, keep up on your security patches, watch the bug count (hopefully) decrease, and you'll probably be safer than if you moved to the latest, greatest iteration that includes features you don't want and a bunch of bugs you don't need. ®

Get our [13]Tech Resources



[1] https://www.theregister.com/2025/01/28/enlightenment_reaches_027/

[2] https://iczelia.net/posts/e16-20-year-old-bug/

[3] https://www.enlightenment.org/e16

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aeAKiIhH16w0eRv6PrxChgAAAwo&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aeAKiIhH16w0eRv6PrxChgAAAwo&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aeAKiIhH16w0eRv6PrxChgAAAwo&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aeAKiIhH16w0eRv6PrxChgAAAwo&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[8] https://www.theregister.com/2025/06/28/hacks_to_get_free_software/

[9] https://www.theregister.com/2026/03/25/open_source_bill_opinion/

[10] https://www.theregister.com/2025/12/31/long_lived_tech/

[11] https://www.theregister.com/2026/02/28/open_source_opinion/

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aeAKiIhH16w0eRv6PrxChgAAAwo&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[13] https://whitepapers.theregister.com/



Bewilderment

Dan 55

Enlightenment is not a particularly fine example of coding, there's the classic thread [1]here which shows just how bad it is but unfortunately it's behind a login wall now thanks to bot scraping.

[1] https://what.thedailywtf.com/topic/15001/enlightened

Re: Bewilderment

doublelayer

For those who don't want to create an account, [1]it's on the Wayback Machine .

[1] https://web.archive.org/web/20260222131600/https://what.thedailywtf.com/topic/15001/enlightened

Re: Bewilderment

Dan 55

Only the first page out of 34 though.

Re: Bewilderment

gv

That's e17 though, not e16.

Re: Bewilderment

LionelB

I'm not sure e16 was any better.

(I was also a little taken aback by her description of the WM as looking "goregous" – a serendipitously apt misspelling.)

Possibly my favourite thing to read in a long time.

IGotOut

"she favors partly because, she tells us, it is actually finished software."

Are you listening Microslop?

Too many companies fuck around with software because somehow they feel they have to. Bug fixes fine, but sometimes just leave well alone.

Re: Possibly my favourite thing to read in a long time.

Anonymous Coward

The endless upgrade cycle is like an ever-accelerating treadmill we're never allowed to step off. It's exhausting.

Eventually one gets tired of hoping for the carrot and realizes there's only a salesman standing behind us with a stick.

Re: Possibly my favourite thing to read in a long time.

Anonymous Coward

My non internet connected Computers have now been sitting on old patched versions of their respective OS for 7 years and work well.

I jumped off the treadmill in 2021.

A thousand times yes

Neil Barnes

Ms Szewczyk deserves many of these --->

for pointing out what should be the bleedin' obvious: when it's finished, stop messing around with it.

when it's finished, stop messing around with it

Steve Graham

No, no, no. xorg is finished and feature-complete, so we need to replace it with Wayland.

Re: when it's finished, stop messing around with it

Anonymous Coward

... then we can start on re-writing it in Rust to ...

Re: when it's finished, stop messing around with it

Anonymous Coward

We don't need to rewrite anything, we can get AI to do it for us.

But don't rush to call it finished just to say so

doublelayer

I agree with this interest in not changing software for change's sake, but it can be taken too far. Sometimes, people hate software because it added a feature they personally didn't need so they assume nobody does. For every feature suggestion, it has to be asked whether this is a thing that's worth adding to the software or whether things are changing because it feels like they are supposed to. That will inevitably be subjective, but just as it's annoying for someone to say the UI had to change because it didn't look modern enough, it's annoying for someone to say a feature shouldn't be added because nobody thought it was needed ten years ago when it was declared finished.

Microsoft should hire her.

Jou (Mxyzptlk)

Right now.

(Edit: To bring back the classic Windows 2000 or Server 2003 theme of course! With some minor improvements.)

Re: Microsoft should hire her.

Anonymous Coward

But she has her whole future ahead of her and you want her to go to Redmond?

What did Kamila ever do to you?

Re: Microsoft should hire her.

Someone Else

...where she will be relegated to some backwater outcropping in Redmond where they send young, idealistic (and talented) up-and comers to die (or become "team players") after a(n un-)healthy diet of Corporate Kool-Aid.

No! Let her go to someplace where the PtB (Powers that Be) still believe in quality. There she will flourish.

Re: Microsoft should hire her.

Doctor Syntax

Is there anywhere like that left?

Re: Microsoft should hire her.

Someone Else

Yes. I work at such a place. Name is redacted, due to internal policies...

Re: Microsoft should hire her.

Fruit and Nutcase

She has Actual Intelligence , not Artificial Intelligence - "Don't call us, we'll call you", as would say a Microsoft HR Bot

Not a surprise

DrXym

Enlightment was such a coding mess that it inspired rants about its awfulness.

Constant change is here to stay

Pete 2

> software can be more or less finished at some point

The only problem with this (desirable) goal, is that so many things happen to the environment around a nice, working bug-free piece of software that it needs constant support just to keep it running.

There used to be a philosophy of "backwards compatibility", both with software and hardware. But that requires a great deal of careful consideration to maintain. Something that took a big hit when the attitude of move fast and break things became popular.

Re: Constant change is here to stay

FeRDNYC

bug-free piece of software

There is no such thing. If this article communicates anything , it should be that! This "finished" software from 20 years ago still has bugs to fix, how can anyone seriously talk about any software being "bug-free"?

Re: Constant change is here to stay

Doctor Syntax

True. So shall we say "feature-complete"?

Trowels

JimmyPage

Ever seen a Roman trowel ? Identical to one you could get at B&Q.

Somethings just work.

(I daren't google to see if there's a smart trowel)

Re: Trowels

TheMaskedMan

"(I daren't google to see if there's a smart trowel)"

If there isn't, there soon will be. Complete wth WiFi, LCD display and USB c charging, it will have a dozen attachments nobody wants or needs, options for AI assisted troweling and a stupid price tag. It will not, however, be a viable trowel.

Have you seen the state of the common bucket recently? Endless hooks and protrusions when all you really want is a container with a handle that doesn't come off!

Good on her for fixing this bug - I couldn't agree more that software can be finished in the sense that it's feature complete, though less so in the sense that it's bug free. Freeze the features and fix the bugs that you can find, then, maybe, maybe think about added features if there's demand for them. But fix the bugs first!

I have to be honest, I kind of hate articles like this

FeRDNYC

This is the type of article that plays up an otherwise-unremarkable event to make it "newsworthy", and takes the opportunity to spice it up with a healthy dose of bias reinforcement.

This is a bug that, if it were to be found in a modern window manager or desktop environment, could be a denial of service route that, while it might not destroy data or lock down a server, could still be highly inconvenient.

If it froze her entire desktop, it was a denial of service route here ! There is no difference in finding this bug in Enlightenment vs. finding it in a modern window manager or desktop environment, other than the fact that it took 20 years to find in Enlightenment due to the user base being small enough that they could all book a cruise together. And they wouldn't need a very big boat.

The fact that Enlightenment shortens window titles with a complicated (unnecessarily overcomplicated, if it was prone to infinite recursion) center-elision algorithm is also not exactly a selling point. And it sounds like the algorithm wasn't even fixed, just had a threshold set for the maximum badness it's allowed to achieve. (Presumably, any attempts to actually fix the algorithm — by which I mean, replacing it entirely with something that isn't stupid and needlessly complex — would be resisted by the "finished"-software crowd.)

Software that's "finished" is software that can never meaningfully improve, just have band-aids placed over its built-in flaws. And anyone who claims there's no room for improvement in any codebase longer than 100 lines of code has an overly generous opinion of programmers' abilities. I've never written a piece of code that was impossible to improve in some ways. Often, ways I never even thought of, or only thought of later.

Yes, of course needless feature creep has nothing to do with improving software, in fact it's often the opposite of improvement. But software being "finished" is similarly the opposite of it being perfected.

Ian Johnston

"We are not nearly eager enough to acknowledge that software can be more or less finished at some point."

Hear bloody hear.

Algebraic symbols are used when you do not know what you are talking about.
-- Philippe Schnoebelen