Package: keepassx
Version: 0.4.3+dfsg
Severity: important
Tags: patch upstream

Dear Maintainer,

My Keepassx database has been updated on Android.
In particular an icon has been changed. This make keepassx crash on
Debian

(gdb) r
Starting program: /home/rousseau/Debian/keepassx-0.4.3+dfsg/bin/keepassx
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xaf686b70 (LWP 2945)]
[New Thread 0xaee85b70 (LWP 2946)]
[Thread 0xaf686b70 (LWP 2945) exited]
[New Thread 0xaf686b70 (LWP 2947)]
[Thread 0xaf686b70 (LWP 2947) exited]
[New Thread 0xaf686b70 (LWP 2948)]
[New Thread 0xae35fb70 (LWP 2949)]
[Thread 0xaf686b70 (LWP 2948) exited]
[Thread 0xae35fb70 (LWP 2949) exited]
Found Metastream: KPX_CUSTOM_ICONS_4
Found Metastream: KPX_GROUP_TREE_STATE

Program received signal SIGSEGV, Segmentation fault.
0xb757e6eb in QPixmap::isNull() const ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
(gdb) bt
#0  0xb757e6eb in QPixmap::isNull() const ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#1  0xb754e6ba in QIcon::addPixmap(QPixmap const&, QIcon::Mode,
QIcon::State) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#2  0xb754e7a9 in QIcon::QIcon(QPixmap const&) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#3  0x08098001 in KeepassEntryView::updateEntry (this=0x828a418,
    item=0x85878a8) at lib/EntryView.cpp:334
#4  0x0809debb in KeepassEntryView::createItems (
    this=this@entry=0x828a418, entries=...) at lib/EntryView.cpp:559
#5  0x0809df4a in KeepassEntryView::showGroup (this=0x828a418, group=
    0x859f120) at lib/EntryView.cpp:547
#6  0x08103511 in KeepassEntryView::qt_static_metacall (_o=0x828a418,
    _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfffd638)
    at ../build/moc/moc_EntryView.cpp:93
#7  0xb71fccd2 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#8  0x08103a87 in KeepassGroupView::groupChanged (this=0x8284810,
    _t1=0x859f120) at ../build/moc/moc_GroupView.cpp:142
#9  0xb71fccd2 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#10 0xb7ab63fd in QTreeWidget::currentItemChanged(QTreeWidgetItem*,
QTreeWidgetItem*) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#11 0xb7ab64b7 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#12 0xb71fccd2 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#13 0xb7a91cfd in QItemSelectionModel::currentChanged(QModelIndex
const&, QModelIndex const&) () from
/usr/lib/i386-linux-gnu/libQtGui.so.4
#14 0xb7a91e7c in QItemSelectionModel::setCurrentIndex(QModelIndex
const&, QFlags<QItemSelectionModel::SelectionFlag>) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#15 0xb7a32597 in QAbstractItemView::setCurrentIndex(QModelIndex
const&) () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#16 0xb7ab4868 in QTreeWidget::setCurrentItem(QTreeWidgetItem*, int) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#17 0xb7ab48ab in QTreeWidget::setCurrentItem(QTreeWidgetItem*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#18 0x080a379b in KeepassGroupView::selectFirstGroup (this=0x8284810)
    at lib/GroupView.cpp:202
#19 0x08073592 in KeepassMainWindow::openDatabase (this=0x8271a30,
    filename=..., IsAuto=false) at mainwindow.cpp:513
#20 0x08074b34 in KeepassMainWindow::openFile (this=0x8271a30,
    filename=...) at mainwindow.cpp:612
#21 0x08074d04 in KeepassMainWindow::OnFileOpen (this=0x8271a30)
    at mainwindow.cpp:625
#22 0xb71fccd2 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#23 0xb749141d in QAction::triggered(bool) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#24 0xb74916bc in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#25 0xb7491864 in QAction::event(QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#26 0xb749847c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#27 0xb749ce7f in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#28 0xb71e454e in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#29 0xb74cfb6f in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#30 0xb74d117d in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#31 0xb749f19d in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#32 0xb71e454e in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#33 0xb749657d in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#34 0xb7547038 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#35 0xb7547473 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#36 0xb7520935 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#37 0xb754b614 in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#38 0xb6c856d3 in g_main_context_dispatch ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0xb6c85a70 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#40 0xb6c85b51 in g_main_context_iteration ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#41 0xb7216831 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/i386-linux-gnu/libQtCore.so.4
#42 0xb754b1fa in ?? () from /usr/lib/i386-linux-gnu/libQtGui.so.4
#43 0xb71e301c in
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/i386-linux-gnu/libQtCore.so.4
#44 0xb71e3311 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/i386-linux-gnu/libQtCore.so.4
#45 0xb71e8a8a in QCoreApplication::exec() ()
   from /usr/lib/i386-linux-gnu/libQtCore.so.4
#46 0xb74962f4 in QApplication::exec() ()
   from /usr/lib/i386-linux-gnu/libQtGui.so.4
#47 0x0805f7aa in main (argc=1, argv=0xbfffefd4) at main.cpp:205
(gdb)

In my case the problem is that the db->icon() returns -1

The patch is simple:
--- Kdb3Database.cpp.old 2013-05-09 21:48:53.000000000 +0200
+++ Kdb3Database.cpp 2013-05-09 21:49:06.000000000 +0200
@@ -66,7 +66,7 @@
 }

 QPixmap& Kdb3Database::icon(int i){
- if(i>=builtinIcons()+CustomIcons.size())
+ if(i<0 || i>=builtinIcons()+CustomIcons.size())
  return EntryIcons[0];
  if(i<builtinIcons())
  return EntryIcons[i];


The patch is for upstream but I don't know if upstream is still active
with this version of Keepassx.

Thanks

-- System Information:
Debian Release: 7.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-686-pae (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


--
 Dr. Ludovic Rousseau


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to