RogueScholar / fingerprint-gui

Use fingerprint readers with a Linux desktop environment
https://web.archive.org/web/20190607022148/http://www.ullrich-online.cc:80/fingerprint/index.php
GNU General Public License v3.0
99 stars 22 forks source link

Segmentation fault (core dumped) #17

Open victorbnl opened 1 year ago

victorbnl commented 1 year ago

Describe the bug

When opening GParted, closing it and opening it again, the agent segfaults

To Reproduce

Steps to reproduce the behavior:

  1. Start the agent: /lib/fingerprint-gui/fingerprint-polkit-agent
  2. Open GParted
  3. Close it
  4. Open it again
  5. See how the agent segfaulted

Logs

New PolkitAgentListener  0x7fa134003500
Adding new listener  PolkitQt1::Agent::Listener(0x7fff48f21510) for  0x7fa134003500
Listener adapter polkit_qt_listener_initiate_authentication
GSimpleAsyncResult: 0x55dd82ffa1e0
polkit_qt_listener_initiate_authentication callback for  0x7fa134003500
showInfo
COMPLETED
Listener adapter polkit_qt_listener_initiate_authentication_finish
polkit_qt_listener_initiate_authentication_finish callback for  0x7fa134003500
Listener adapter polkit_qt_listener_initiate_authentication
GSimpleAsyncResult: 0x55dd8300f960
polkit_qt_listener_initiate_authentication callback for  0x7fa134003500
zsh: segmentation fault (core dumped)  /lib/fingerprint-gui/fingerprint-polkit-agent

Desktop

victorbnl commented 1 year ago

Here is the relevant part of the call stack at the time it segfaults

FingerprintPolkit.cpp:55 : main(), in agent.exec()
PolkitListener.cpp:51 : PolkitListener::iniateAuthentication, in session.clear()
QtSharedPointer::CustomDeleter<PolkitQt1::Agent::Session, QtSharedPointer::NormalDeleter>::execute
Full call stack
libgio-2.0.so.0!g_dbus_method_invocation_return_gerror (Unknown Source:0)
libpolkit-agent-1.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
QtSharedPointer::CustomDeleter::execute(QtSharedPointer::CustomDeleter * const this) (/usr/include/qt/QtCore/qsharedpointer_impl.h:187)
QtSharedPointer::ExternalRefCountWithCustomDeleter::deleter(QtSharedPointer::ExternalRefCountData * self) (/usr/include/qt/QtCore/qsharedpointer_impl.h:205)
QtSharedPointer::ExternalRefCountData::destroy(QtSharedPointer::ExternalRefCountData * const this) (/usr/include/qt/QtCore/qsharedpointer_impl.h:149)
QSharedPointer::deref(QSharedPointer::Data * dd) (/usr/include/qt/QtCore/qsharedpointer_impl.h:458)
QSharedPointer::deref(QSharedPointer * const this) (/usr/include/qt/QtCore/qsharedpointer_impl.h:453)
QSharedPointer::~QSharedPointer(QSharedPointer * const this) (/usr/include/qt/QtCore/qsharedpointer_impl.h:310)
QSharedPointer::clear(QSharedPointer * const this) (/usr/include/qt/QtCore/qsharedpointer_impl.h:419)
PolkitListener::initiateAuthentication(PolkitListener * const this, const QString & actionId, const QString & message, const QString & iconName, const PolkitQt1::Details & details, const QString & cookie, const PolkitQt1::Identity::List & identities, PolkitQt1::Agent::AsyncResult * result) (/home/victor/projects/forks/fingerprint-gui/src/PolkitListener.cpp:51)
libpolkit-qt5-agent-1.so.1!PolkitQt1::Agent::ListenerAdapter::polkit_qt_listener_initiate_authentication(_PolkitAgentListener*, char const*, char const*, char const*, _PolkitDetails*, char const*, _GList*, _GCancellable*, _GSimpleAsyncResult*) (Unknown Source:0)
libpolkit-agent-1.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libglib-2.0.so.0!g_main_context_dispatch (Unknown Source:0)
libglib-2.0.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libglib-2.0.so.0!g_main_context_iteration (Unknown Source:0)
libQt5Core.so.5!QEventDispatcherGlib::processEvents(QFlags) (Unknown Source:0)
libQt5Core.so.5!QEventLoop::exec(QFlags) (Unknown Source:0)
libQt5Core.so.5!QCoreApplication::exec() (Unknown Source:0)
main(int argc, char ** argv) (/home/victor/projects/forks/fingerprint-gui/src/FingerprintPolkit.cpp:55)
victorbnl commented 1 year ago

I ran it with Valgrind