Bug 111517 - Kghostview in fullscreen mode crashes when clicking anywhere in the open file dialog
Summary: Kghostview in fullscreen mode crashes when clicking anywhere in the open file...
Status: RESOLVED FIXED
Alias: None
Product: kghostview
Classification: Applications
Component: general (show other bugs)
Version: 0.20
Platform: Gentoo Packages Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Luís Pedro Coelho
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-25 21:51 UTC by Boris Dušek
Modified: 2006-11-05 22:20 UTC (History)
0 users

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 Boris Dušek 2005-08-25 21:51:07 UTC
Version:           0.20 (using KDE KDE 3.4.2)
Installed from:    Gentoo Packages
Compiler:          gcc (GCC) 3.4.4 (Gentoo 3.4.4, ssp-3.4.4-1.0, pie-8.7.8) CFLAGS="-mtune=i686 -ggdb3"; LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
OS:                Linux

Hi,

steps to reproduce the crash every time:
1. start kghostview
2. if not started in fullscreen mode, go to fullscreen mode
3. start open file dialog (CTRL+O)
4. click anywhere in the open file dialog
5. kghostview crashes immediately

Some remarks for clarity: First, this is really only specific to fullscreen mode and when having no file previously opened. Second, it is specific to clicking (navigating with keyboard shortcuts, such as TAB and ENTER does not cause a crash) and can be caused by clicking anywhere (tested places: file in a file list, empty space in the file list, Cancel button, left panel with default locations such as "Home folder" or "Floppy").

If you want, you can request some gdb information from me, provided that you explain how to do it.

Here is the backtrace:
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#4  0xb7fd90e3 in KDSC::epsf () from /usr/kde/3.4/lib/libkghostviewlib.so.0
#5  0xb7fd96b7 in KDSC::isStructured ()
   from /usr/kde/3.4/lib/libkghostviewlib.so.0
#6  0xb7faa856 in KGVMiniWidget::nextPage ()
   from /usr/kde/3.4/lib/libkghostviewlib.so.0
#7  0xb7fc1169 in FullScreenFilter::eventFilter ()
   from /usr/kde/3.4/lib/libkghostviewlib.so.0
#8  0xb6e073af in QApplication::internalNotify (this=0xbfee6bb0, 
    receiver=0x81ab580, e=0xbfee5a70) at qapplication.cpp:2568
#9  0xb6e06abb in QApplication::notify (this=0xbfee6bb0, receiver=0x81ab580, 
    e=0xbfee5a70) at qapplication.cpp:2421
#10 0xb762e09e in KApplication::notify ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#11 0xb6d8d84a in QApplication::sendSpontaneousEvent (receiver=0x81ab580, 
    event=0xbfee5a70) at qapplication.h:494
#12 0xb6d86d9e in QETWidget::translateMouseEvent (this=0x81ab580, 
    event=0xbfee5e30) at qapplication_x11.cpp:4291
#13 0xb6d8467b in QApplication::x11ProcessEvent (this=0xbfee6bb0, 
    event=0xbfee5e30) at qapplication_x11.cpp:3442
#14 0xb6da222a in QEventLoop::processEvents (this=0x80913d8, flags=4)
    at qeventloop_x11.cpp:192
#15 0xb6e1f3f7 in QEventLoop::enterLoop (this=0x80913d8) at qeventloop.cpp:198
#16 0xb6e0776d in QApplication::enter_loop (this=0xbfee6bb0)
    at qapplication.cpp:2790
#17 0xb7050d60 in QDialog::exec (this=0xbfee5f30) at qdialog.cpp:432
#18 0xb7d6ee16 in KFileDialog::getOpenURL () from /usr/kde/3.4/lib/libkio.so.4
#19 0xb7fa4cbd in KGVShell::slotFileOpen ()
   from /usr/kde/3.4/lib/libkghostviewlib.so.0
#20 0xb7fa2bcd in KGVShell::qt_invoke ()
   from /usr/kde/3.4/lib/libkghostviewlib.so.0
#21 0xb6e77e7e in QObject::activate_signal (this=0x813d0e8, clist=0x813d3c0, 
    o=0xbfee6140) at qobject.cpp:2355
#22 0xb6e77cd9 in QObject::activate_signal (this=0x813d0e8, signal=2)
    at qobject.cpp:2324
#23 0xb792604a in KAction::activated () from /usr/kde/3.4/lib/libkdeui.so.4
#24 0xb792562d in KAction::slotActivated ()
   from /usr/kde/3.4/lib/libkdeui.so.4
#25 0xb792645a in KAction::qt_invoke () from /usr/kde/3.4/lib/libkdeui.so.4
#26 0xb6e77e7e in QObject::activate_signal (this=0x815e270, clist=0x8174b48, 
    o=0xbfee6280) at qobject.cpp:2355
#27 0xb6e77cd9 in QObject::activate_signal (this=0x815e270, signal=2)
    at qobject.cpp:2324
#28 0xb769ea94 in KAccelPrivate::menuItemActivated ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#29 0xb769cdf9 in KAccelPrivate::eventFilter ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#30 0xb6e752b4 in QObject::activate_filters (this=0x80d8a38, e=0xbfee66d0)
    at qobject.cpp:902
#31 0xb6e75133 in QObject::event (this=0x80d8a38, e=0xbfee66d0)
    at qobject.cpp:735
#32 0xb6ebb92f in QWidget::event (this=0x80d8a38, e=0xbfee66d0)
    at qwidget.cpp:4658
#33 0xb6f9e0be in QMainWindow::event (this=0x80d8a38, e=0xbfee66d0)
    at qmainwindow.cpp:1686
#34 0xb6e0757d in QApplication::internalNotify (this=0xbfee6bb0, 
    receiver=0x80d8a38, e=0xbfee66d0) at qapplication.cpp:2635
#35 0xb6e06924 in QApplication::notify (this=0xbfee6bb0, receiver=0x80e4380, 
    e=0xbfee66d0) at qapplication.cpp:2392
#36 0xb762e09e in KApplication::notify ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#37 0xb7e7dfaa in QApplication::sendEvent ()
   from /usr/kde/3.4/lib/libkparts.so.2
#38 0xb769ba22 in KAccelEventHandler::x11Event ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#39 0xb7718e28 in KAppX11HackWidget::publicx11Event ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#40 0xb7632d68 in KApplication::x11EventFilter ()
   from /usr/kde/3.4/lib/libkdecore.so.4
#41 0xb6d78419 in qt_x11EventFilter (ev=0xbfee6a80)
    at qapplication_x11.cpp:386
#42 0xb6d840ef in QApplication::x11ProcessEvent (this=0xbfee6bb0, 
    event=0xbfee6a80) at qapplication_x11.cpp:3308
#43 0xb6da222a in QEventLoop::processEvents (this=0x80913d8, flags=4)
    at qeventloop_x11.cpp:192
#44 0xb6e1f3f7 in QEventLoop::enterLoop (this=0x80913d8) at qeventloop.cpp:198
#45 0xb6e1f312 in QEventLoop::exec (this=0x80913d8) at qeventloop.cpp:145
#46 0xb6e07711 in QApplication::exec (this=0xbfee6bb0)
    at qapplication.cpp:2758
#47 0x080498e0 in ?? ()
#48 0xbfee6bb0 in ?? ()
#49 0x00000001 in ?? ()
#50 0x00000001 in ?? ()
#51 0x00000000 in ?? ()
#52 0x00000f30 in ?? ()
#53 0x00000000 in ?? ()
#54 0x08053ec0 in ?? ()
#55 0x08053eb8 in ?? ()
#56 0x03df6174 in ?? ()
#57 0xbfee6bf0 in ?? ()
#58 0x4abce4e0 in _r_debug ()
#59 0x08048f87 in ?? ()
#60 0x4abc4703 in _dl_debug_state () from /lib/ld-linux.so.2
#61 0x4abe5f31 in __libc_start_main () from /lib/libc.so.6
#62 0x08049501 in ?? ()

Regards,
Boris
Comment 1 Martin Koller 2006-11-05 22:08:25 UTC
In KDE-3.5.5 you can not change to fullscreen mode before opening a file.
But you can do the following to reproduce: open any pdf file, switch to fullscreen mode, Quit qith Alt-F4.
Restart kghostview, right-click to get the popup, select show menubar -> crash

Comment 2 Martin Koller 2006-11-05 22:20:13 UTC
SVN commit 602388 by mkoller:

BUG: 111517

check 0-pointer to avoid crashes


 M  +6 -0      kgv_miniwidget.cpp  


--- branches/KDE/3.5/kdegraphics/kghostview/kgv_miniwidget.cpp #602387:602388
@@ -205,11 +205,15 @@
 
 void KGVMiniWidget::lastPage()
 {
+    if ( !dsc() ) return;
+
     goToPage( dsc()->page_count() - 1 );
 }
 
 bool KGVMiniWidget::prevPage()
 {
+    if ( !dsc() ) return false;
+
     int new_page = 0;
 
     if( dsc()->isStructured() ) {
@@ -224,6 +228,8 @@
 
 bool KGVMiniWidget::nextPage()
 {
+    if ( !dsc() ) return false;
+
     int new_page = 0;
 
     if( dsc()->isStructured() ) {