Bug 290341 - KMail crashes when editing IMAP ACL
Summary: KMail crashes when editing IMAP ACL
Status: RESOLVED FIXED
Alias: None
Product: kmail2
Classification: Applications
Component: config dialog (show other bugs)
Version: 4.8
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-01 18:04 UTC by Thiago Macieira
Modified: 2012-01-13 13:03 UTC (History)
1 user (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 Thiago Macieira 2012-01-01 18:04:45 UTC
Application: kontact (4.8 beta2)
KDE Platform Version: 4.7.4 (4.7.4) (Compiled from sources)
Qt Version: 4.8.0
Operating System: Linux 3.1.6-1.fc16.x86_64 x86_64
Distribution (Platform): Fedora RPMs

-- Information about the crash:
1) Select a folder
2) Right-click, go to Folder Properties
3) Go to the Access Contro tab
4) select an existing ACL entry (which is not your user) and click Edit

KMail crashes

The crash can be reproduced every time.

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f77090087a0 (LWP 30077))]

Thread 3 (Thread 0x7f76fd7d2700 (LWP 30084)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x00007f770f78db03 in WTF::TCMalloc_PageHeap::scavengerThread() () from /home/thiago/obj/qt/qt-4.8/lib/libQtWebKit.so.4
#2  0x00007f770f78d0d8 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /home/thiago/obj/qt/qt-4.8/lib/libQtWebKit.so.4
#3  0x0000003c50e07b31 in start_thread (arg=0x7f76fd7d2700) at pthread_create.c:305
#4  0x0000003c506dfd2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f76fceb9700 (LWP 30085)):
#0  0x0000003c506d7423 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x0000003c50242d24 in ?? () from /lib64/libglib-2.0.so.0
#2  0x0000003c5024325c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007f7710ac46b2 in QEventDispatcherGlib::processEvents (this=0x271a6c0, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f7710a864b0 in QEventLoop::processEvents (this=0x7f76fceb8d70, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventloop.cpp:149
#5  0x00007f7710a8663a in QEventLoop::exec (this=0x7f76fceb8d70, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventloop.cpp:204
#6  0x00007f7710956023 in QThread::exec (this=0x271a130) at /home/thiago/src/qt/qt-4.8/src/corelib/thread/qthread.cpp:501
#7  0x00007f77109561c2 in QThread::run (this=0x271a130) at /home/thiago/src/qt/qt-4.8/src/corelib/thread/qthread.cpp:568
#8  0x00007f77109589a0 in QThreadPrivate::start (arg=0x271a130) at /home/thiago/src/qt/qt-4.8/src/corelib/thread/qthread_unix.cpp:298
#9  0x0000003c50e07b31 in start_thread (arg=0x7f76fceb9700) at pthread_create.c:305
#10 0x0000003c506dfd2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f77090087a0 (LWP 30077)):
[KCrash Handler]
#6  0x00007f771153cb3a in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data (this=0x746361746e6f53) at ../../include/QtCore/../../../../../src/qt/qt-4.8/src/corelib/tools/qscopedpointer.h:135
#7  0x00007f7711559e3e in qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at ../../include/QtCore/../../../../../src/qt/qt-4.8/src/corelib/global/qglobal.h:2428
#8  0x00007f771155a238 in QBoxLayout::d_func (this=0x746361746e6f4b) at ../../include/QtGui/../../../../../src/qt/qt-4.8/src/gui/kernel/qboxlayout.h:63
#9  0x00007f7711558dd7 in QBoxLayout::insertWidget (this=0x746361746e6f4b, index=-1, widget=0x533fd30, stretch=0, alignment=...) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qboxlayout.cpp:1029
#10 0x00007f7711558ff9 in QBoxLayout::addWidget (this=0x746361746e6f4b, widget=0x533fd30, stretch=0, alignment=...) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qboxlayout.cpp:1112
#11 0x00007f76b868076b in MailCommon::AclEntryDialog::setPermissions (this=0x7fffcbed85f0, permissions=...) at /home/thiago/src/kde4/kdepim/mailcommon/aclentrydialog.cpp:153
#12 0x00007f76b8683ad0 in editAcl (this=0x46bbaa0) at /home/thiago/src/kde4/kdepim/mailcommon/aclmanager.cpp:247
#13 qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /home/thiago/obj/kde4/kdepim/mailcommon/aclmanager.moc:83
#14 MailCommon::AclManager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/thiago/obj/kde4/kdepim/mailcommon/aclmanager.moc:73
#15 0x00007f7710aa6b2e in QMetaObject::activate (sender=0x4308bc0, m=0x7f771228bfa0, local_signal_index=1, argv=0x7fffcbed8a30) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qobject.cpp:3547
#16 0x00007f771153b76c in QAction::triggered (this=0x4308bc0, _t1=false) at .moc/debug-shared/moc_qaction.cpp:277
#17 0x00007f771153aae8 in QAction::activate (this=0x4308bc0, event=QAction::Trigger) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qaction.cpp:1257
#18 0x00007f771153bf0d in QAction::trigger (this=0x4308bc0) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qaction.h:218
#19 0x00007f771153aeba in QAction::qt_static_metacall (_o=0x4308bc0, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0x7fffcbed8bf0) at .moc/debug-shared/moc_qaction.cpp:151
#20 0x00007f7710aa6b2e in QMetaObject::activate (sender=0x44092b0, m=0x7f77122b4fc0, local_signal_index=2, argv=0x7fffcbed8bf0) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qobject.cpp:3547
#21 0x00007f7711d6af06 in QAbstractButton::clicked (this=0x44092b0, _t1=false) at .moc/debug-shared/moc_qabstractbutton.cpp:220
#22 0x00007f77119f06d6 in QAbstractButtonPrivate::emitClicked (this=0x46c18c0) at /home/thiago/src/qt/qt-4.8/src/gui/widgets/qabstractbutton.cpp:546
#23 0x00007f77119f0655 in QAbstractButtonPrivate::click (this=0x46c18c0) at /home/thiago/src/qt/qt-4.8/src/gui/widgets/qabstractbutton.cpp:539
#24 0x00007f77119f1b1b in QAbstractButton::mouseReleaseEvent (this=0x44092b0, e=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/widgets/qabstractbutton.cpp:1121
#25 0x00007f77115af658 in QWidget::event (this=0x44092b0, event=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qwidget.cpp:8362
#26 0x00007f77119f1971 in QAbstractButton::event (this=0x44092b0, e=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/widgets/qabstractbutton.cpp:1080
#27 0x00007f7711ab461f in QPushButton::event (this=0x44092b0, e=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/widgets/qpushbutton.cpp:683
#28 0x00007f771154b13c in QApplicationPrivate::notify_helper (this=0x2563e30, receiver=0x44092b0, e=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication.cpp:4550
#29 0x00007f77115490cc in QApplication::notify (this=0x7fffcbeda790, receiver=0x44092b0, e=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication.cpp:4093
#30 0x00007f77125280e6 in KApplication::notify (this=0x7fffcbeda790, receiver=0x44092b0, event=0x7fffcbed99a0) at /home/thiago/src/kde4/kdelibs/kdeui/kernel/kapplication.cpp:311
#31 0x00007f7710a88bb6 in QCoreApplication::notifyInternal (this=0x7fffcbeda790, receiver=0x44092b0, event=0x7fffcbed99a0) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qcoreapplication.cpp:876
#32 0x00007f771154da3b in QCoreApplication::sendSpontaneousEvent (receiver=0x44092b0, event=0x7fffcbed99a0) at ../../include/QtCore/../../../../../src/qt/qt-4.8/src/corelib/kernel/qcoreapplication.h:234
#33 0x00007f77115476e6 in QApplicationPrivate::sendMouseEvent (receiver=0x44092b0, event=0x7fffcbed99a0, alienWidget=0x44092b0, nativeWidget=0x4122f90, buttonDown=0x7f77122c9c98, lastMouseReceiver=..., spontaneous=true) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication.cpp:3159
#34 0x00007f77115ea55b in QETWidget::translateMouseEvent (this=0x4122f90, event=0x7fffcbeda380) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication_x11.cpp:4494
#35 0x00007f77115e6f92 in QApplication::x11ProcessEvent (this=0x7fffcbeda790, event=0x7fffcbeda380) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication_x11.cpp:3498
#36 0x00007f77116212c4 in x11EventSourceDispatch (s=0x25732a0, callback=0, user_data=0x0) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qguieventdispatcher_glib.cpp:146
#37 0x0000003c502427ed in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#38 0x0000003c50242fc8 in ?? () from /lib64/libglib-2.0.so.0
#39 0x0000003c5024325c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#40 0x00007f7710ac468f in QEventDispatcherGlib::processEvents (this=0x252dd90, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventdispatcher_glib.cpp:424
#41 0x00007f7711621664 in QGuiEventDispatcherGlib::processEvents (this=0x252dd90, flags=...) at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#42 0x00007f7710a864b0 in QEventLoop::processEvents (this=0x7fffcbeda710, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventloop.cpp:149
#43 0x00007f7710a8663a in QEventLoop::exec (this=0x7fffcbeda710, flags=...) at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qeventloop.cpp:204
#44 0x00007f7710a89236 in QCoreApplication::exec () at /home/thiago/src/qt/qt-4.8/src/corelib/kernel/qcoreapplication.cpp:1148
#45 0x00007f7711548352 in QApplication::exec () at /home/thiago/src/qt/qt-4.8/src/gui/kernel/qapplication.cpp:3811
#46 0x0000000000403649 in main (argc=1, argv=0x7fffcbedadb8) at /home/thiago/src/kde4/kdepim/kontact/src/main.cpp:218

Reported using DrKonqi
Comment 1 Laurent Montel 2012-01-12 18:30:51 UTC
Can't reproduce it. 
But code is:
void AclEntryDialog::setPermissions( KIMAP::Acl::Rights permissions )
{
  QAbstractButton* button = d->mButtonGroup->button( KIMAP::Acl::normalizedRights( permissions ) );
  if ( button ) {
    button->setChecked( true );
  } else {
    QRadioButton *radioButton = new QRadioButton( AclUtils::permissionsToUserString( permissions ) );
    d->mButtonLayout->addWidget( radioButton );
    d->mButtonGroup->addButton( radioButton, permissions );
  }

  d->mCustomPermissions = permissions;
}

I don't understand why it crashs because we add just an radiobutton
Comment 2 Laurent Montel 2012-01-12 18:33:01 UTC
ok found: mButtonLayout is never defined. => it will crash normal
d->mButtonLayout->addWidget( radioButton );
Comment 3 Laurent Montel 2012-01-12 18:40:11 UTC
Git commit 1888e8580d2e8ef32911318652edc8610463d438 by Montel Laurent.
Committed on 12/01/2012 at 19:38.
Pushed by mlaurent into branch 'master'.

Fix Bug 290341 - KMail crashes when editing IMAP ACL
CCMAIL: thiago@kde.org
I can't reproduce crash but Thiago could you test it please ? easy to
backport and report me if it fix it.
Thanks Regards

M  +4    -4    mailcommon/aclentrydialog.cpp

http://commits.kde.org/kdepim/1888e8580d2e8ef32911318652edc8610463d438
Comment 4 Laurent Montel 2012-01-13 08:26:41 UTC
Git commit a4cd27dea47b7b34973a52d7f4e0f86ef0574345 by Montel Laurent.
Committed on 12/01/2012 at 19:38.
Pushed by mlaurent into branch 'KDE/4.8'.

Fix Bug 290341 - KMail crashes when editing IMAP ACL
CCMAIL: thiago@kde.org
I can't reproduce crash but Thiago could you test it please ? easy to
backport and report me if it fix it.
Thanks Regards
(cherry picked from commit 1888e8580d2e8ef32911318652edc8610463d438)

M  +4    -4    mailcommon/aclentrydialog.cpp

http://commits.kde.org/kdepim/a4cd27dea47b7b34973a52d7f4e0f86ef0574345
Comment 5 Thiago Macieira 2012-01-13 13:03:56 UTC
Fix confirmed.