Public bug reported:

ods2tsv crashes with a segmentation fault when processing a valid .ods
file. The file itself is not corrupted — I confirmed it opens and parses
correctly with orcus-ods (LibreOffice's orcus library), producing
correct output for all 27 rows including formulas.

Steps to reproduce:

ods2tsv myfile.ods

Result: Segmentation fault (core dumped), exit code 139. No .tsv output
is produced.

Environment:

ods2tsv / libodsstream version 0.9.6-1build2 (Ubuntu 24.04 / Noble package)
Qt6, libquazip1-qt6 1

Backtrace (via gdb):

Program received signal SIGSEGV, Segmentation fault.
#0  QIODevicePrivate::~QIODevicePrivate() () from libQt6Core.so.6
#1  qiodevice_close_file_func(void*, void*) () from libquazip1-qt6.so.1
#2  unzClose () from libquazip1-qt6.so.1
#3  QuaZip::close() () from libquazip1-qt6.so.1
#4  OdsDocReader::~OdsDocReader() () from libodsstream.so.0
#5  0x00005555555590bf in ?? ()
#6  QObject::event / QCoreApplication::notifyInternal2 / event loop frames 
(Qt6Core)

The crash happens during teardown, not during parsing — it occurs when
OdsDocReader's destructor calls QuaZip::close(), which in turn triggers
unzClose() → qiodevice_close_file_func() → the QIODevice's destructor.
This looks like a double-close/use-after-free: the underlying QIODevice
appears to have already been destroyed (or its private data freed) by
the time QuaZip::close() tries to close it via the same handle.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: ods2tsv 0.9.15-1
ProcVersionSignature: Ubuntu 7.0.0-1017.17-raspi 7.0.12
Uname: Linux 7.0.0-1017-raspi aarch64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: arm64
CasperMD5CheckResult: unknown
CloudArchitecture: aarch64
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSubPlatform: config-disk (/dev/mmcblk0p1)
CurrentDesktop: ubuntu:GNOME
Date: Sat Aug 22 11:00:31 2026
ImageMediaBuild: 20251119
SourcePackage: libodsstream
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: libodsstream (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: apport-bug arm64 arm64-image raspi-image resolute wayland-session

** Attachment added: "the .ods file that triggers this"
   https://bugs.launchpad.net/bugs/2164803/+attachment/5994249/+files/max.ods

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2164803

Title:
  ods2tsv segfaults on exit (SIGSEGV in OdsDocReader destructor / QuaZip
  double-close)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libodsstream/+bug/2164803/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to