Closed hammy275 closed 4 years ago
I can reproduce this by editing the Exec line of any program and changing the command to a nonexistent one. It doesn't require a space.
For example by editing the .desktop file for Calculator:
sudo nano /user/share/applications/org.gnome.Calculator.desktop
Exec=gnome-calculator
to Exec=dodognome-calculator
Removing the menu applet from the panel before doing the above still results in Cinnamon crashing. At the time of the crash I only have a terminal running, no other programs open.
The crash:
dmesg shows:
cinnamon[2969]: segfault at c0 ip 00007fd5e46f7474 sp 00007ffee7684678 error 4 in libgio-2.0.so.0.6400.2[7fd5e4662000+113000]
Code: e7 48 89 ee e8 fd c6 ff ff 48 89 ef 89 c3 e8 03 f7 f6 ff 85 db 74 b0 4c 89 e0 5b 5d 41 5c c3 0f 1f 80 00 00 00 00 f3 0f 1e fa <0f> b6 87 c0 00 00 00 d0 e8 83 e0 01 c3 66 66 2e 0f 1f 84 00 00 00
Same messages are in the journal, along with a stacktrace from systemd-coredump for cinnamon[2969] process:
Stack trace of thread 2969:
#0 0x00007fd5e46f7474 g_desktop_app_info_get_is_hidden (libgio-2.0.so.0 + 0xcd474)
#1 0x00007fd5e416e9eb process_layout (libcinnamon-menu-3.so.0 + 0xd9eb)
#2 0x00007fd5e416eca9 process_layout (libcinnamon-menu-3.so.0 + 0xdca9)
#3 0x00007fd5e4171214 gmenu_tree_build_from_layout (libcinnamon-menu-3.so.0 + 0x10214)
#4 0x00007fd5e4be8778 on_apps_tree_changed_cb (libcinnamon.so + 0x27778)
#5 0x00007fd5e45dc802 g_closure_invoke (libgobject-2.0.so.0 + 0x14802)
#6 0x00007fd5e45f0814 n/a (libgobject-2.0.so.0 + 0x28814)
#7 0x00007fd5e45fbb9e g_signal_emit_valist (libgobject-2.0.so.0 + 0x33b9e)
#8 0x00007fd5e45fc0d3 g_signal_emit (libgobject-2.0.so.0 + 0x340d3)
#9 0x00007fd5e416a7f0 menu_layout_invoke_monitors (libcinnamon-menu-3.so.0 + 0x97f0)
#10 0x00007fd5e44f0e8e g_main_context_dispatch (libglib-2.0.so.0 + 0x51e8e)
#11 0x00007fd5e44f1240 n/a (libglib-2.0.so.0 + 0x52240)
#12 0x00007fd5e44f1533 g_main_loop_run (libglib-2.0.so.0 + 0x52533)
#13 0x00007fd5e4b3164a meta_run (libmuffin.so.0 + 0x4e64a)
#14 0x0000558eda947afc main (cinnamon + 0x2afc)
#15 0x00007fd5e429d0b3 __libc_start_main (libc.so.6 + 0x270b3)
#16 0x0000558eda947c1e _start (cinnamon + 0x2c1e)
Stack trace of thread 2971:
#0 0x00007fd5e438b96f __GI___poll (libc.so.6 + 0x11596f)
#1 0x00007fd5e44f11ae n/a (libglib-2.0.so.0 + 0x521ae)
#2 0x00007fd5e44f12e3 g_main_context_iteration (libglib-2.0.so.0 + 0x522e3)
#3 0x00007fd5e44f1331 n/a (libglib-2.0.so.0 + 0x52331)
#4 0x00007fd5e451a931 n/a (libglib-2.0.so.0 + 0x7b931)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2972:
#0 0x00007fd5e438b96f __GI___poll (libc.so.6 + 0x11596f)
#1 0x00007fd5e44f11ae n/a (libglib-2.0.so.0 + 0x521ae)
#2 0x00007fd5e44f1533 g_main_loop_run (libglib-2.0.so.0 + 0x52533)
#3 0x00007fd5e4748e9a n/a (libgio-2.0.so.0 + 0x11ee9a)
#4 0x00007fd5e451a931 n/a (libglib-2.0.so.0 + 0x7b931)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2973:
#0 0x00007fd5e438b96f __GI___poll (libc.so.6 + 0x11596f)
#1 0x00007fd5e44f11ae n/a (libglib-2.0.so.0 + 0x521ae)
#2 0x00007fd5e44f12e3 g_main_context_iteration (libglib-2.0.so.0 + 0x522e3)
#3 0x00007fd5dce3d99d n/a (libdconfsettings.so + 0xa99d)
#4 0x00007fd5e451a931 n/a (libglib-2.0.so.0 + 0x7b931)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2974:
#0 0x00007fd5e4263376 futex_wait_cancelable (libpthread.so.0 + 0x10376)
#1 0x00007fd5e122c4d8 n/a (libmozjs-52.so.0 + 0x1ce4d8)
#2 0x00007fd5e122c7a5 n/a (libmozjs-52.so.0 + 0x1ce7a5)
#3 0x00007fd5e16ac20c n/a (libmozjs-52.so.0 + 0x64e20c)
#4 0x00007fd5e16d4349 n/a (libmozjs-52.so.0 + 0x676349)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2975:
#0 0x00007fd5e4263376 futex_wait_cancelable (libpthread.so.0 + 0x10376)
#1 0x00007fd5e122c4d8 n/a (libmozjs-52.so.0 + 0x1ce4d8)
#2 0x00007fd5e122c7a5 n/a (libmozjs-52.so.0 + 0x1ce7a5)
#3 0x00007fd5e16ac20c n/a (libmozjs-52.so.0 + 0x64e20c)
#4 0x00007fd5e16d4349 n/a (libmozjs-52.so.0 + 0x676349)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2976:
#0 0x00007fd5e4263376 futex_wait_cancelable (libpthread.so.0 + 0x10376)
#1 0x00007fd5e122c4d8 n/a (libmozjs-52.so.0 + 0x1ce4d8)
#2 0x00007fd5e122c7a5 n/a (libmozjs-52.so.0 + 0x1ce7a5)
#3 0x00007fd5e16ac20c n/a (libmozjs-52.so.0 + 0x64e20c)
#4 0x00007fd5e16d4349 n/a (libmozjs-52.so.0 + 0x676349)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2977:
#0 0x00007fd5e4263376 futex_wait_cancelable (libpthread.so.0 + 0x10376)
#1 0x00007fd5e122c4d8 n/a (libmozjs-52.so.0 + 0x1ce4d8)
#2 0x00007fd5e122c7a5 n/a (libmozjs-52.so.0 + 0x1ce7a5)
#3 0x00007fd5e16ac20c n/a (libmozjs-52.so.0 + 0x64e20c)
#4 0x00007fd5e16d4349 n/a (libmozjs-52.so.0 + 0x676349)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
Stack trace of thread 2978:
#0 0x00007fd5e4263376 futex_wait_cancelable (libpthread.so.0 + 0x10376)
#1 0x00007fd5e122c4d8 n/a (libmozjs-52.so.0 + 0x1ce4d8)
#2 0x00007fd5e122c7a5 n/a (libmozjs-52.so.0 + 0x1ce7a5)
#3 0x00007fd5e16ac20c n/a (libmozjs-52.so.0 + 0x64e20c)
#4 0x00007fd5e16d4349 n/a (libmozjs-52.so.0 + 0x676349)
#5 0x00007fd5e425c609 start_thread (libpthread.so.0 + 0x9609)
#6 0x00007fd5e4398103 __clone (libc.so.6 + 0x122103)
wow :)
Fixed.
If a valid .desktop file is modified to be an invalid one, Cinnamon will crash. I was able to produce this by installing VirtualBox, then adding text to its .desktop (/usr/share/applications/virtualbox.desktop) and adding a space followed by some text to the TryExec line.