#1100661 libtinyxml2-10: apparent ABI break

Package:
libtinyxml2-10
Source:
libtinyxml2-10
Description:
C++ XML parsing library
Submitter:
Thorsten Bonow
Date:
2025-03-26 09:09:04 UTC
Severity:
normal
#1100661#5
Date:
2025-03-15 18:57:47 UTC
From:
To:
Dear Maintainer,

encfs segfaults on my system:

$ encfs --verbose ~/.crypt ~/crypt
VERBOSE Root directory: /home/toto/.crypt/ [main.cpp:686]
VERBOSE Fuse arguments: (daemon) (threaded) (keyCheck) encfs /home/toto/crypt/
-o use_ino -o default_permissions  [main.cpp:687]
[1]    23164 segmentation fault (core dumped)  encfs --verbose ~/.crypt ~/crypt
FAIL: 139

This is a known problem, see https://bbs.archlinux.org/viewtopic.php?id=304049.

Downgrading to libtinyxml2-10_10.0.0+dfsg-2+b2_amd64.deb fixes the problem for
me.

Over at Arch Linux, a rebuilt of the encfs package (1.9.5-8) was released to
fix the bug; it was not treated as a bug in libtinyxml2!  See
https://gitlab.archlinux.org/archlinux/packaging/packages/encfs/-/commit/2a8b62d76149d7bfa414f0ce581278dab3973263

#1100661#10
Date:
2025-03-16 14:53:49 UTC
From:
To:
Dear Maintainer,

I can confirm that on my system, a local rebuild of the encfs
package, without any manual changes, fixes the problem.

#1100661#15
Date:
2025-03-16 20:39:35 UTC
From:
To:
clone 1100588 -1
reassign -1 libtinyxml2-10
retitle -1 libtinyxml2-10: apparent ABI break
thanks

Hi,

see below for the description. I can confirm, with stacktrace. Maybe
time to create a custom SONAME version?

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff78fd6ce in tinyxml2::XMLDocument::Identify(char*, tinyxml2::XMLNode**, bool) () from /lib/x86_64-linux-gnu/libtinyxml2.so.10
(gdb) bt
#0  0x00007ffff78fd6ce in tinyxml2::XMLDocument::Identify(char*, tinyxml2::XMLNode**, bool) () from /lib/x86_64-linux-gnu/libtinyxml2.so.10
#1  0x00007ffff78fe646 in tinyxml2::XMLNode::ParseDeep(char*, tinyxml2::StrPair*, int*) () from /lib/x86_64-linux-gnu/libtinyxml2.so.10
#2  0x00007ffff78fc2e7 in tinyxml2::XMLDocument::Parse(char const*, unsigned long) () from /lib/x86_64-linux-gnu/libtinyxml2.so.10
#3  0x00007ffff7f7ba1f in encfs::XmlReader::load (this=<optimized out>, fileName=<optimized out>) at /usr/include/c++/13/bits/basic_string.h:222
#4  0x00007ffff7f68ed6 in encfs::readV6Config (configFile=0x5555555cbcb0 "/tmp/.crypt/.encfs6.xml", cfg=0x5555555cbe70, info=<optimized out>) at ./encfs/FileUtils.cpp:275
#5  0x00007ffff7f670d7 in encfs::readConfig_load (nm=nm@entry=0x7ffff7fbe3e0 <encfs::ConfigFileMapping>, path=0x5555555cbcb0 "/tmp/.crypt/.encfs6.xml", config=config@entry=0x5555555cbe70) at ./encfs/FileUtils.cpp:207
#6  0x00007ffff7f67508 in encfs::readConfig (rootDir="/tmp/.crypt/", config=0x5555555cbe70, cmdConfig="") at /usr/include/c++/13/bits/basic_string.h:222
#7  0x00007ffff7f75459 in encfs::initFS (ctx=ctx@entry=0x5555555cbcf0, opts=std::shared_ptr<encfs::EncFS_Opts> (use count 1, weak count 0) = {...}) at /usr/include/c++/13/bits/shared_ptr_base.h:1665
#8  0x0000555555559a92 in main (argc=<optimized out>, argv=<optimized out>) at ./encfs/main.cpp:741

Best regards,
Eduard.

Hallo,
* Thorsten Bonow [Sat, Mar 15 2025, 07:57:47PM]:

#1100661#28
Date:
2025-03-18 08:31:33 UTC
From:
To:

#1100661#33
Date:
2025-03-18 19:14:20 UTC
From:
To:
What does that mean? The ABI will be restored in 11.0.0+dfsg-1?

And how do you want the using packages to be fixed? Binary rebuild?

Best regards,
Eduard.

#1100661#38
Date:
2025-03-24 06:50:17 UTC
From:
To:
notfound 1100661 10.1.0+dfsg-1
found 1100661 10.0.0+dfsg-2+b2
thanks

No answer is an answer. The version tag did not make sense, and the
result was probably the opposite of the intent, i.e. now fixed packages
would not migrate to testing anymore.

Eduard.

#1100661#45
Date:
2025-03-24 07:40:38 UTC
From:
To:
The ABI has been changed permanently moving forward, and the fix for
this bug was to bump the SONAME of the library from libtinyxml2.so.10 to
libtinyxml2.so.11. This was done upstream in response to a bug
report[1].

Packages have already been rebuilt[2]. The affected version in unstable
(10.1.0+dfsg-1) has been superseded, and should no longer affect
anything. The version in testing (10.0.0+dfsg-1) precedes this bug.

Users who were solely on testing will never see this bug appear, and
users who were on unstable and have fully up-to-date systems will also
no longer experience this bug.

[1] https://github.com/leethomason/tinyxml2/issues/1018
[2] https://release.debian.org/transitions/html/auto-tinyxml2.html