pgaskin / NickelMenu

The easiest way to launch scripts, change settings, and run actions on Kobo e-readers.
https://pgaskin.net/NickelMenu
MIT License
507 stars 24 forks source link

nickel_open:library:dropbox crashing on 4.26.16704 #107

Closed pgaskin closed 3 years ago

pgaskin commented 3 years ago

MR:post-4126138

NiLuJe commented 3 years ago

Do you have a way to get a backtrace or do you want me to try?

pgaskin commented 3 years ago

It's probably something obvious, but it might save me some time (which I've been quite short of recently) if you can get one for me.

Also, on a somewhat unrelated note, do you happen to have any refreshed patches for NickelTC, specifically zlib-ng?

NiLuJe commented 3 years ago

Also, on a somewhat unrelated note, do you happen to have any refreshed patches for NickelTC, specifically zlib-ng?

What's on SVN worked as of two weeks ago in x-compile, but I'd completely forgotten to update the nickel sysroot bits for zlib-ng, I'll do that.

EDIT: Done (I haven't actually run this in a while, though, stupid typos may have crept in over time).

NiLuJe commented 3 years ago

Okay, take one, forgot that my nm binary was stripped ;p.

Thread 1 "nickel" received signal SIGSEGV, Segmentation fault.
0x765cd08e in MoreController::dropbox() () from /usr/local/Kobo/libnickel.so.1
(gdb) bt full
#0  0x765cd08e in MoreController::dropbox() () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#1  0x6f2c65de in ?? () from /usr/local/Kobo/imageformats/libnm.so
No symbol table info available.
#2  0x6f2c9c1e in ?? () from /usr/local/Kobo/imageformats/libnm.so
No symbol table info available.
#3  0x6f2ca04a in ?? () from /usr/local/Kobo/imageformats/libnm.so
No symbol table info available.
#4  0x730e87d4 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#5  0x73a5e098 in QAction::triggered(bool) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#6  0x730e8ab6 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#7  0x76897770 in MenuTextItem::tapped(bool) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#8  0x765ac732 in MenuTextItem::tapGesture(GestureReceiver*, TapGesture*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#9  0x762f2e78 in GestureReceiver::sendGestureToDelegate(QGestureEvent*, GestureDelegate*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#10 0x73a62c2a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#11 0x73a685e0 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#12 0x765902ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#13 0x730c79c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#14 0x73a9e728 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#15 0x73a9f4c6 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#16 0x73a9fbe0 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#17 0x73a676e4 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#18 0x765902ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#19 0x730c79c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#20 0x73a69a66 in QApplicationPrivate::translateRawTouchEvent(QWidget*, QTouchDevice*, QList<QTouchEvent::TouchPoint> const&, unsigned long) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#21 0x73aad890 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#22 0x73a62c2a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#23 0x73a67a66 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
--Type <RET> for more, q to quit, c to continue without paging--c
#24 0x765902ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#25 0x730c79c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#26 0x7334255a in QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::TouchEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#27 0x733441d8 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#28 0x73332a46 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#29 0x718705f6 in ?? () from /usr/local/Kobo/platforms/libkobo.so
No symbol table info available.
#30 0x730c630a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#31 0x730cb1e8 in QCoreApplication::exec() () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#32 0x0001f176 in main ()
No symbol table info available.
NiLuJe commented 3 years ago

With debug symbols:

Thread 1 "nickel" received signal SIGSEGV, Segmentation fault.
0x7652a08e in MoreController::dropbox() () from /usr/local/Kobo/libnickel.so.1
(gdb) bt full
#0  0x7652a08e in MoreController::dropbox() () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#1  0x6f21bd54 in nm_action_nickel_open (arg=<optimized out>) at src/action_cc.cc:80
        MoreController_dropbox = <optimized out>
        tmp1 = 0x7eeacb88 " dropbox"
        arg2 = <optimized out>
        fn_c = <optimized out>
        fn_f = <optimized out>
        sym_c = <optimized out>
        sym_f = <optimized out>
        fn_d = <optimized out>
        obj = <optimized out>
        arg1 = <optimized out>
        sym_d = <optimized out>
#2  0x6f21eb92 in nm_menu_item_do (it=it@entry=0x307f248, argtransform=argtransform@entry=0x0, argtransform_data=argtransform_data@entry=0x0) at src/nickelmenu.cc:673
        res = 0x0
        mwc = <optimized out>
        cur = 0x307b558
        err = 0x0
        success = true
        skip = 0
#3  0x6f21efce in <lambda()>::<lambda(bool)>::operator() (__closure=<synthetic pointer>) at src/nickelmenu.cc:388
        it = <optimized out>
        it = <optimized out>
#4  QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, _nm_menu_hook2(MainNavView*, QWidget*)::<lambda()>::<lambda(bool)> >::call (arg=<optimized out>, f=...) at /home/niluje/x-tools/arm-nickel-linux-gnueabihf/arm-nickel-linux-gnueabihf/sysroot/usr/include/QtCore/qobjectdefs_impl.h:502
No locals.
#5  QtPrivate::Functor<_nm_menu_hook2(MainNavView*, QWidget*)::<lambda()>::<lambda(bool)>, 1>::call<QtPrivate::List<bool>, void> (arg=<optimized out>, f=...) at /home/niluje/x-tools/arm-nickel-linux-gnueabihf/arm-nickel-linux-gnueabihf/sysroot/usr/include/QtCore/qobjectdefs_impl.h:559
No locals.
#6  QtPrivate::QFunctorSlotObject<_nm_menu_hook2(MainNavView*, QWidget*)::<lambda()>::<lambda(bool)>, 1, QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=0x0)
    at /home/niluje/x-tools/arm-nickel-linux-gnueabihf/arm-nickel-linux-gnueabihf/sysroot/usr/include/QtCore/qobject_impl.h:198
No locals.
#7  0x730457d4 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#8  0x739bb098 in QAction::triggered(bool) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#9  0x73045ab6 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#10 0x767f4770 in MenuTextItem::tapped(bool) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#11 0x76509732 in MenuTextItem::tapGesture(GestureReceiver*, TapGesture*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#12 0x7624fe78 in GestureReceiver::sendGestureToDelegate(QGestureEvent*, GestureDelegate*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#13 0x739bfc2a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#14 0x739c55e0 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#15 0x764ed2ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
--Type <RET> for more, q to quit, c to continue without paging--c
No symbol table info available.
#16 0x730249c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#17 0x739fb728 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#18 0x739fc4c6 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#19 0x739fcbe0 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#20 0x739c46e4 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#21 0x764ed2ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#22 0x730249c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#23 0x739c6a66 in QApplicationPrivate::translateRawTouchEvent(QWidget*, QTouchDevice*, QList<QTouchEvent::TouchPoint> const&, unsigned long) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#24 0x73a0a890 in ?? () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#25 0x739bfc2a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#26 0x739c4a66 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Widgets.so.5
No symbol table info available.
#27 0x764ed2ae in Nickel3Application::notify(QObject*, QEvent*) () from /usr/local/Kobo/libnickel.so.1
No symbol table info available.
#28 0x730249c8 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#29 0x7329f55a in QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::TouchEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#30 0x732a11d8 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#31 0x7328fa46 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Gui.so.5
No symbol table info available.
#32 0x717cd5f6 in ?? () from /usr/local/Kobo/platforms/libkobo.so
No symbol table info available.
#33 0x7302330a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#34 0x730281e8 in QCoreApplication::exec() () from /usr/local/Qt-5.2.1-arm/lib/libQt5Core.so.5
No symbol table info available.
#35 0x0001f176 in main ()
No symbol table info available.

Syslog excerpt:

Jun  1 20:59:21 nickel: (NickelMenu) item 'Dropbox' pressed... (src/nickelmenu.cc:387)
Jun  1 20:59:21 nickel: (NickelMenu) action 0x6f21bc45 with argument library: dropbox :  (src/nickelmenu.cc:658)
Jun  1 20:59:21 nickel: (NickelMenu) ...success=1 ; on_success=1 on_failure=1 skip=0 (src/nickelmenu.cc:659)
Jun  1 20:59:21 nickel: (NickelMenu) nickel_open: detected firmware >15505 (new nav tab bar), checking special cases (src/action_cc.cc:72)
shermp commented 3 years ago

Taking a look at Ghidra indicates to me that this is most likely the offending bit.

// technically, we need a MoreController, but it isn't used as of 15505, so it doesn't matter (and if it ever does, it's not going to crash in a critical place)
MoreController_dropbox(nullptr);

Seems that yes, a MoreController is required as of fw 4.26.

shermp commented 3 years ago

Note, I'm having a quick stab at fixing this.