Debian Bug report logs - #941886
crashes with segfault while scanning library

version graph

Package: fbreader; Maintainer for fbreader is Debian QA Group <packages@qa.debian.org>; Source for fbreader is src:fbreader (PTS, buildd, popcon).

Reported by: Antoine Beaupre <anarcat@debian.org>

Date: Mon, 7 Oct 2019 04:03:02 UTC

Severity: important

Found in version fbreader/0.12.10dfsg2-3

Reply or subscribe to this bug.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Eugene V. Lyubimkin <jackyf@debian.org>:
Bug#941886; Package fbreader. (Mon, 07 Oct 2019 04:03:05 GMT) (full text, mbox, link).


Acknowledgement sent to Antoine Beaupre <anarcat@debian.org>:
New Bug report received and forwarded. Copy sent to Eugene V. Lyubimkin <jackyf@debian.org>. (Mon, 07 Oct 2019 04:03:05 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Antoine Beaupre <anarcat@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: crashes with segfault while scanning library
Date: Mon, 07 Oct 2019 00:02:19 -0400
Package: fbreader
Version: 0.12.10dfsg2-3
Severity: important

After starting fbreader (which takes 30 seconds), I go to the library
and hit settings. There I configure my ebook library (~/books), click
the "Look for books in subdirectories" button, and hit "OK".

After a little scanning, it totally crashes with the following backtrace:

(gdb) run
Starting program: /usr/bin/fbreader 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
loading /usr/lib/zlibrary/ui/zlui-qt4.so

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ed10a2 in ZLZipDir::collectFiles(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) () from /usr/lib/libzlcore.so.0.13
(gdb) br
Breakpoint 1 at 0x7ffff7ed10a2
(gdb) bt
#0  0x00007ffff7ed10a2 in ZLZipDir::collectFiles(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool) () at /usr/lib/libzlcore.so.0.13
#1  0x0000555555707015 in BooksDBUtil::resetZipInfo(ZLFile const&) (zipFile=...) at ./fbreader/../zlibrary/core/include/shared_ptr.h:236
#2  0x00005555557071be in BooksDBUtil::listZipEntries(ZLFile const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) (zipFile=..., entries=std::vector of length 0, capacity 0) at ./fbreader/../zlibrary/core/include/ZLFile.h:99
#3  0x00005555555cfbdf in Library::collectBookFileNames(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) const
    (this=0x5555559ef710, bookFileNames=std::set with 87 elements = {...}) at Library.cpp:83
#4  0x00005555555d0083 in Library::rebuildBookSet() const (this=this@entry=0x5555559ef710) at Library.cpp:114
#5  0x00005555555d1390 in LibrarySynchronizer::run() (this=0x7fffffffb3b0) at Library.cpp:170
#6  0x00007ffff7fb7ede in ZLQtProgressDialog::run(ZLRunnable&) () at /usr/lib/zlibrary/ui/zlui-qt4.so
#7  0x00007ffff7ed5314 in ZLDialogManager::wait(ZLResourceKey const&, ZLRunnable&) const () at /usr/lib/libzlcore.so.0.13
#8  0x00005555555cd23d in Library::synchronize() const (this=this@entry=0x5555559ef710) at /usr/include/c++/8/bits/basic_string.h:936
#9  0x00005555555cd2e9 in Library::authors() const (this=0x5555559ef710) at Library.cpp:310
#10 0x00005555555a98ee in LibraryByAuthorView::makeUpToDate() (this=0x5555557ec4d0) at LibraryByAuthorView.cpp:122
#11 0x00005555555896ca in LibraryView::paint() (this=0x5555557ec4d0) at LibraryView.cpp:38
#12 0x00007ffff7fbba6e in ZLQtViewWidget::Widget::paintEvent(QPaintEvent*) () at /usr/lib/zlibrary/ui/zlui-qt4.so
#13 0x00007ffff59aca28 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007ffff595aa2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#15 0x00007ffff5961212 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007ffff63edafb in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007ffff59a7203 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007ffff59a7dfa in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
    at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007ffff59a6f09 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007ffff59a7dfa in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
    at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007ffff59a6f09 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007ffff5b5faa8 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007ffff599b350 in QWidgetPrivate::syncBackingStore() () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007ffff59ad138 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007ffff5d4c84b in QMainWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007ffff595aa2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007ffff5961212 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#28 0x00007ffff63edafb in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#29 0x00007ffff5b60f4d in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#30 0x00007ffff599d66d in QWidget::repaint(QRect const&) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007ffff599d6cc in QWidget::repaint() () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007ffff7edb75a in ZLApplication::refreshWindow() () at /usr/lib/libzlcore.so.0.13
#33 0x0000555555699999 in FBReader::refreshWindow() (this=0x5555558362e0) at FBReader.cpp:204
#34 0x00007ffff7ed6408 in ZLOptionsDialog::run() () at /usr/lib/libzlcore.so.0.13
#35 0x00007ffff7f0a036 in ZLDesktopOptionsDialog::run() () at /usr/lib/libzlcore.so.0.13
#36 0x000055555568fd8e in ShowOptionsDialogAction::run() (this=<optimized out>) at ./fbreader/../zlibrary/core/include/shared_ptr.h:240
#37 0x00007ffff7edc157 in ZLApplication::doAction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib/libzlcore.so.0.13
#38 0x00007ffff6401c90 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#39 0x00007ffff5955012 in QAction::triggered(bool) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#40 0x00007ffff59562a7 in QAction::activate(QAction::ActionEvent) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#41 0x00007ffff5cf2da3 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#42 0x00007ffff5cf2ed4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#43 0x00007ffff5dad86a in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#44 0x00007ffff59aca28 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#45 0x00007ffff595aa2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#46 0x00007ffff59613fc in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#47 0x00007ffff63edafb in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
--Type <RET> for more, q to quit, c to continue without paging--
#48 0x00007ffff5960b3b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#49 0x00007ffff59d3d84 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#50 0x00007ffff59d29d0 in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#51 0x00007ffff59fa06c in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#52 0x00007ffff564ef2e in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007ffff564f1c8 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007ffff564f25c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007ffff641a8e1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#56 0x00007ffff59fa1f7 in  () at /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#57 0x00007ffff63ec38f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#58 0x00007ffff63ec65e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#59 0x00007ffff63f1b2a in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#60 0x00007ffff7fbd527 in ZLQtLibraryImplementation::run(ZLApplication*) () at /usr/lib/zlibrary/ui/zlui-qt4.so
#61 0x000055555558696c in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/include/c++/8/bits/char_traits.h:285
(gdb) 

It looks like it hit a problem in a Zip routine of some sort? It seems
like this specific zip file is causing some trouble:

(gdb) up
#1  0x0000555555707015 in BooksDBUtil::resetZipInfo (zipFile=...) at ./fbreader/../zlibrary/core/include/shared_ptr.h:236
236	./fbreader/../zlibrary/core/include/shared_ptr.h: No such file or directory.
(gdb) p zipFile
$1 = (const ZLFile &) @0x7fffffffaef0: {static ourPlainStreamCache = {<No data fields>}, 
  myPath = "/srv/books/.git/annex/objects/42/k6/SHA256E-s314645--55529471a826d0e5dfeb8ac1b720e0e09ed0adf2b511d70910cb953e57155ccc.zip:SHA256E-s314645--55529471a826d0e5dfeb8ac1b720e0e09ed0adf2b511d70910cb953e57155"..., myNameWithExtension = "SHA256E-s314645--55529471a826d0e5dfeb8ac1b720e0e09ed0adf2b511d70910cb953e57155ccc.zip", 
  myNameWithoutExtension = "SHA256E-s314645--55529471a826d0e5dfeb8ac1b720e0e09ed0adf2b511d70910cb953e57155ccc", myExtension = "zip", myArchiveType = ZLFile::ZIP, myInfo = {Exists = true, 
    IsDirectory = false, Size = 4096}, myInfoIsFilled = true}

mupdf can read this file without problem. One interesting thing in
that filename is the colo in the middle: that should be a slash, as
the first .zip path is actually a directory (git-annex oddity).

If I block (read, not execute) access to the git-annex directory, the
problem goes away, so this seems to be specifically a problem with a
directory structure like:

foo.zip/foo.zip

... although I haven't tested that directly to confirm.

-- System Information:
Debian Release: 10.1
  APT prefers stable-debug
  APT policy: (500, 'stable-debug'), (500, 'stable'), (1, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-6-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_CA.UTF-8, LC_CTYPE=fr_CA.UTF-8 (charmap=UTF-8), LANGUAGE=fr_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages fbreader depends on:
ii  libc6          2.28-10
ii  libgcc1        1:8.3.0-6
ii  libsqlite3-0   3.27.2-3
ii  libstdc++6     8.3.0-6
ii  libzlcore0.13  0.12.10dfsg2-3
ii  libzltext0.13  0.12.10dfsg2-3
ii  libzlui-qt4    0.12.10dfsg2-3

Versions of packages fbreader recommends:
ii  sensible-utils  0.0.12

fbreader suggests no packages.

-- no debconf information



Information forwarded to debian-bugs-dist@lists.debian.org, Eugene V. Lyubimkin <jackyf@debian.org>:
Bug#941886; Package fbreader. (Sat, 09 Nov 2019 12:39:08 GMT) (full text, mbox, link).


Acknowledgement sent to "Eugene V. Lyubimkin" <jackyf@debian.org>:
Extra info received and forwarded to list. Copy sent to Eugene V. Lyubimkin <jackyf@debian.org>. (Sat, 09 Nov 2019 12:39:08 GMT) (full text, mbox, link).


Message #10 received at 941886@bugs.debian.org (full text, mbox, reply):

From: "Eugene V. Lyubimkin" <jackyf@debian.org>
To: Antoine Beaupre <anarcat@debian.org>
Cc: 941886@bugs.debian.org
Subject: Re: Bug#941886: crashes with segfault while scanning library
Date: Sat, 9 Nov 2019 13:32:20 +0100
Hello Antoine,

Antoine Beaupre kirjoitti 7.10.2019 klo 6.02:
> After starting fbreader (which takes 30 seconds), I go to the library
> and hit settings. There I configure my ebook library (~/books), click
> the "Look for books in subdirectories" button, and hit "OK".
> 
> After a little scanning, it totally crashes with the following backtrace:

Thank you for the detailed report. Unfortunately, the upstream development
has stopped many years ago, and it's unlikely for problems to become fixed
unless somebody steps up.


Regards,
-- 
Eugene V. Lyubimkin aka JackYF
C++ GNU/Linux userspace developer, Debian Developer



Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Thu Nov 21 22:33:10 2024; Machine Name: bembo

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.