Control: reassign -1 libmutter-2-0 Control: tags -1 patch upstream I followed this through a backtrace from a coredump obtained by systemd-coredump:
Message: Process 1426 (gnome-shell) of user 112 dumped core. Stack trace of thread 1426: #0 0x00007fa82bfe346d meta_gpu_kms_new (libmutter-2.so.0) #1 0x00007fa82bfe4d0a meta_monitor_manager_kms_initable_init (libmutter-2.so.0) #2 0x00007fa82d9ed557 g_initable_new_valist (libgio-2.0.so.0) #3 0x00007fa82d9ed609 g_initable_new (libgio-2.0.so.0) #4 0x00007fa82bf438c1 meta_backend_create_monitor_manager (libmutter-2.so.0) #5 0x00007fa82bf442e4 meta_init_backend (libmutter-2.so.0) #6 0x00007fa82bf8be7f meta_init (libmutter-2.so.0) #7 0x000056451b90b59a main (gnome-shell) #8 0x00007fa82bd27b17 __libc_start_main (libc.so.6) #9 0x000056451b90b9ca _start (gnome-shell) There was a missing check for NULL return on error, which was subsequently dereferenced, leading to the crash. The attached patch fixed the crash for me.
Description: Check for error return from drmModeGetResources drmModeGetResources is documented as returning NULL in case of error. The code was not checking for this case, and unconditionlly dereferenced its result, leading to a crash. Bug-Debian: https://bugs.debian.org/900002 Author: Phil Miller <unmob...@gmail.com> --- mutter-3.28.2.orig/src/backends/native/meta-gpu-kms.c +++ mutter-3.28.2/src/backends/native/meta-gpu-kms.c @@ -801,6 +801,16 @@ meta_gpu_kms_new (MetaMonitorManagerKms */ drm_resources = drmModeGetResources (kms_fd); + if (!drm_resources) + { + g_set_error(error, + META_GPU_KMS_ERROR, + META_GPU_KMS_ERROR_NO_CONNECTORS, + "drm_resources unexpectedly came back NULL."); + meta_launcher_close_restricted (launcher, kms_fd); + return NULL; + } + n_connectors = drm_resources->count_connectors; drmModeFreeResources (drm_resources);