> I reproduced the code from [1] to learn how to create KF5 applications. The
> application runs fine but if I first open some file and then quit through
> the quit action i get a segmentation fault.
> 
> I ran the application in GDB and created this backtrace:
> > #0  0x00007ffff4335b44 in  () at /usr/lib64/libQt5Core.so.5
> > #1  0x00007ffff43136d9 in QHashData::free_helper(void
> > (*)(QHashData::Node*)) () at /usr/lib64/libQt5Core.so.5 #2 
> > 0x00007ffff432db24 in  () at
> > /usr/lib64/libQt5Core.so.5
> > #3  0x00007ffff35fab19 in __run_exit_handlers () at /lib64/libc.so.6
> > #4  0x00007ffff35fab65 in  () at /lib64/libc.so.6
> > #5  0x00007ffff35e4b0c in __libc_start_main () at /lib64/libc.so.6
> > #6  0x0000000000407509 in _start () at ../sysdeps/x86_64/start.S:122
> 
> Now I wonder if the example contains a bug I cannot spot or if my
> environment is somehow broken. Its OpenSuSE Leap with OBS KDE repositories
> (Plasma is very stable indeed, so i can't imagine it's the environment).
I can reproduce this bug on openSUSE Leap. 

valgrind's output:

==28585== Invalid read of size 4
==28585==    at 0x8436B44: ??? (in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x84146D8: QHashData::free_helper(void (*)(QHashData::Node*)) 
(in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x842EB23: ??? (in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x92B3B18: __run_exit_handlers (in /lib64/libc-2.19.so)
==28585==    by 0x92B3B64: exit (in /lib64/libc-2.19.so)
==28585==    by 0x929DB0B: (below main) (in /lib64/libc-2.19.so)
==28585==  Address 0x170a34a0 is not stack'd, malloc'd or (recently) free'd
==28585== 
==28585== 
==28585== Process terminating with default action of signal 11 (SIGSEGV)
==28585==  Access not within mapped region at address 0x170A34A0
==28585==    at 0x8436B44: ??? (in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x84146D8: QHashData::free_helper(void (*)(QHashData::Node*)) 
(in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x842EB23: ??? (in /usr/lib64/libQt5Core.so.5.5.1)
==28585==    by 0x92B3B18: __run_exit_handlers (in /lib64/libc-2.19.so)
==28585==    by 0x92B3B64: exit (in /lib64/libc-2.19.so)
==28585==    by 0x929DB0B: (below main) (in /lib64/libc-2.19.so)

Looks like a bug in QHashData::free_helper()...


-- 
Alexander

Reply via email to