Bug 411969 - SIGSEV when adding big file
Summary: SIGSEV when adding big file
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (show other bugs)
Version: 19.08.0
Platform: Arch Linux Linux
: NOR critical
Target Milestone: ---
Assignee: k3b developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-16 13:26 UTC by JKFRT
Modified: 2019-09-16 20:49 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description JKFRT 2019-09-16 13:26:01 UTC
SUMMARY

k3b segfaults when adding a big file to a data project

STEPS TO REPRODUCE
1. create a file of around 25GB with `fallocate -l 24864 testfile` or `dd if=/dev/zero of=testfile bs=1MB count=24846 
2. create a new data project in k3b
3. add the testfile to the project

OBSERVED RESULT

Segfault.

backtrace in gdb:
(K3b::DataUrlAddingDialog) using locale codec:  UTF-8
K3b::Iso9660::openArchive no volume descriptors

Thread 1 "k3b" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e00830 in K3b::ExternalBin::hasFeature(QString const&) const () from /usr/lib/libk3blib.so.7
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── registers ────
$rax   : 0x0000555555dde940  →  0x0000000c00000001
$rbx   : 0x00007fffffffdb70  →  0x0000555555dc42e0  →  0x0000000700000001
$rcx   : 0x0               
$rdx   : 0x74              
$rsp   : 0x00007fffffffd948  →  0x00005555556db1f9  →   mov rdi, QWORD PTR [rsp+0x230]
$rbp   : 0x0000555555faf0b0  →  0x00005555557a8130  →  0x00005555555c4580  →   mov rdi, QWORD PTR [rdi+0x8]
$rsi   : 0x00007fffffffdb80  →  0x0000555555dde940  →  0x0000000c00000001
$rdi   : 0x0               
$rip   : 0x00007ffff7e00830  →  <K3b::ExternalBin::hasFeature(QString+0> mov rdi, QWORD PTR [rdi+0x8]
$r8    : 0x0000555555dde970  →  0x0000000200000000
$r9    : 0x000055555576394d  →  0x655200203e2d2000
$r10   : 0x8               
$r11   : 0x2               
$r12   : 0x8000            
$r13   : 0x0000555555faf108  →  0x0000555555f25110  →  0x0000000200000001
$r14   : 0x0               
$r15   : 0x0               
$eflags: [zero carry parity adjust sign trap INTERRUPT direction overflow RESUME virtualx86 identification]
$cs: 0x0033 $ss: 0x002b $ds: 0x0000 $es: 0x0000 $fs: 0x0000 $gs: 0x0000 
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── stack ────
0x00007fffffffd948│+0x0000: 0x00005555556db1f9  →   mov rdi, QWORD PTR [rsp+0x230]	 ← $rsp
0x00007fffffffd950│+0x0008: 0x0000000000000068 ("h"?)
0x00007fffffffd958│+0x0010: 0x0000555555fac901  →  0x0000000073007200
0x00007fffffffd960│+0x0018: 0x00007fffe4007760  →  0x00007ffff7f7eb48  →  0x00007ffff7eccab0  →   lea rax, [rip+0xb2091]        # 0x7ffff7f7eb48
0x00007fffffffd968│+0x0020: 0x00007fffffffdb80  →  0x0000555555dde940  →  0x0000000c00000001
0x00007fffffffd970│+0x0028: 0x00007fffffffda58  →  0x0000555555ee2b90  →  0xffffffff00000004
0x00007fffffffd978│+0x0030: 0x00007fffffffda60  →  0x0000555555dde850  →  0x0000555500000001
0x00007fffffffd980│+0x0038: 0x0000000000000000
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── code:x86:64 ────
   0x7ffff7e00826 <K3b::ExternalBin::path()+0> ror    BYTE PTR [rax], 0xc3
   0x7ffff7e00829                  nop    
   0x7ffff7e0082a                  nop    WORD PTR [rax+rax*1+0x0]
 → 0x7ffff7e00830 <K3b::ExternalBin::hasFeature(QString+0> mov    rdi, QWORD PTR [rdi+0x8]
   0x7ffff7e00834 <K3b::ExternalBin::hasFeature(QString+0> mov    edx, 0x1
   0x7ffff7e00839 <K3b::ExternalBin::hasFeature(QString+0> add    rdi, 0x28
   0x7ffff7e0083d <K3b::ExternalBin::hasFeature(QString+0> jmp    QWORD PTR [rip+0x17f9cd]        # 0x7ffff7f80210
   0x7ffff7e00843                  nop    
   0x7ffff7e00844                  data16 nop WORD PTR cs:[rax+rax*1+0x0]
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── threads ────
[#0] Id 1, Name: "k3b", stopped, reason: SIGSEGV
[#1] Id 2, Name: "QXcbEventQueue", stopped, reason: SIGSEGV
[#2] Id 3, Name: "QDBusConnection", stopped, reason: SIGSEGV

[#0] 0x7ffff7e00830 → K3b::ExternalBin::hasFeature(QString const&) const()
[#1] 0x5555556db1f9 → mov rdi, QWORD PTR [rsp+0x230]
[#2] 0x5555556dca22 → mov rax, QWORD PTR [rbp+0x58]
[#3] 0x7ffff608344a → QObject::event(QEvent*)()
[#4] 0x7ffff6a5408b → QWidget::event(QEvent*)()
[#5] 0x7ffff6a104f5 → QApplicationPrivate::notify_helper(QObject*, QEvent*)()
[#6] 0x7ffff6a19e11 → QApplication::notify(QObject*, QEvent*)()
[#7] 0x7ffff60569c2 → QCoreApplication::notifyInternal2(QObject*, QEvent*)()
[#8] 0x7ffff6059739 → QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)()
[#9] 0x7ffff60af404 → mov rdi, QWORD PTR [rbx+0x68]
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
gef➤  bt
#0  0x00007ffff7e00830 in K3b::ExternalBin::hasFeature(QString const&) const () at /usr/lib/libk3blib.so.7
#1  0x00005555556db1f9 in  ()
#2  0x00005555556dca22 in  ()
#3  0x00007ffff608344a in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff6a5408b in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#5  0x00007ffff6a104f5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#6  0x00007ffff6a19e11 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#7  0x00007ffff60569c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#8  0x00007ffff6059739 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#9  0x00007ffff60af404 in  () at /usr/lib/libQt5Core.so.5
#10 0x00007ffff021a3ae in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#11 0x00007ffff021c1c1 in  () at /usr/lib/libglib-2.0.so.0
#12 0x00007ffff021c201 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#13 0x00007ffff60aea03 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#14 0x00007ffff60554ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#15 0x00007ffff605d326 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#16 0x00005555555c3780 in  ()
#17 0x00007ffff5a3fee3 in __libc_start_main () at /usr/lib/libc.so.6
#18 0x00005555555c39fe in _start ()



EXPECTED RESULT

big file is added to project. No crash.

SOFTWARE/OS VERSIONS
Linux: Arch Linux
(available in About System)
KDE Frameworks Version: 5.62.0
Qt Version: 5.13.1 (built against 5.13.1)

ADDITIONAL INFORMATION

This used to work fine before.
Comment 1 JKFRT 2019-09-16 13:29:38 UTC
The version tested is actually reporting: 19.08.1
Comment 2 Albert Astals Cid 2019-09-16 20:49:25 UTC
Git commit 787aaa1f4a28bbf6d76f7c35c39f4c7dfa874ac0 by Albert Astals Cid.
Committed on 16/09/2019 at 20:49.
Pushed by aacid into branch 'Applications/19.08'.

Fix crash when adding big files and mkisofs is not installed

M  +2    -1    src/projects/k3bdataurladdingdialog.cpp

https://commits.kde.org/k3b/787aaa1f4a28bbf6d76f7c35c39f4c7dfa874ac0