The objects that cause the crash are created right there, all inside eLadderLogWriter::write(). It's a bit embarassing... se_SaveToLadderLog expects an tOutput, only to convert it to a string internally always, and ::write() supplies a string, so that string needs to get conveverted, and the way that happens is: tOutput is a linked list of tOutputItem, which is an abstract base type... there is a string specialization. So, to print a string, the code does: create a linked list with a single element in it, containing a copy of the output string. It then goes over the list and copies everything into a target string. So, two extra strings, two extra memory blocks.
Anyway, instead of one tOutputItem getting created, I see two. Not sure whether the first one is even real, but the second one gets fed corrupted list data already in its constructor. I did get to reproduce the problem on other systems. The GCC version required is 15.2, 14.3 is not affected, I could not conveniently test 15.1. You need to pass CXXFLAGS="-flto=auto -ffat-lto-objects" to configure, which is what the debian build does, among others, but these two are what triggers the problem. It *might* be a compiler bug with these LTO options. More likely is that we are violating the One Definition Rule somewhere, or do some other undefined behavior that trips LTO up. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2127929 Title: armagetronad don't execute in Ubuntu 25.10 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/armagetronad/+bug/2127929/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
