|
toppk |
f48abd2 |
From dbe9daeb763bffdf2ba4a5fa7c2a3ac8587c0d37 Mon Sep 17 00:00:00 2001
|
|
toppk |
f48abd2 |
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
|
toppk |
f48abd2 |
Date: Fri, 27 Sep 2019 10:15:48 +0200
|
|
toppk |
f48abd2 |
Subject: [PATCH] main: Make process PR_SET_DUMPABLE
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
Otherwise we won't get core dumps if the launching binary has
|
|
toppk |
f48abd2 |
capabilities set.
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
https://gitlab.gnome.org/GNOME/mutter/merge_requests/811
|
|
toppk |
f48abd2 |
---
|
|
toppk |
f48abd2 |
config.h.meson | 3 +++
|
|
toppk |
f48abd2 |
meson.build | 4 ++++
|
|
toppk |
f48abd2 |
src/core/main.c | 8 ++++++++
|
|
toppk |
f48abd2 |
3 files changed, 15 insertions(+)
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
diff --git a/config.h.meson b/config.h.meson
|
|
toppk |
f48abd2 |
index 77045319c..0bab71848 100644
|
|
toppk |
f48abd2 |
--- a/config.h.meson
|
|
toppk |
f48abd2 |
+++ b/config.h.meson
|
|
toppk |
f48abd2 |
@@ -61,6 +61,9 @@
|
|
toppk |
f48abd2 |
/* XKB base prefix */
|
|
toppk |
f48abd2 |
#mesondefine XKB_BASE
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
+/* Whether <sys/prctl.h> exists and it defines prctl() */
|
|
toppk |
f48abd2 |
+#mesondefine HAVE_SYS_PRCTL
|
|
toppk |
f48abd2 |
+
|
|
toppk |
f48abd2 |
/* Either <sys/random.h> or <linux/random.h> */
|
|
toppk |
f48abd2 |
#mesondefine HAVE_SYS_RANDOM
|
|
toppk |
f48abd2 |
#mesondefine HAVE_LINUX_RANDOM
|
|
toppk |
f48abd2 |
diff --git a/meson.build b/meson.build
|
|
toppk |
f48abd2 |
index ae0bbfcc2..55ab3eb14 100644
|
|
toppk |
f48abd2 |
--- a/meson.build
|
|
toppk |
f48abd2 |
+++ b/meson.build
|
|
toppk |
f48abd2 |
@@ -366,6 +366,10 @@ cdata.set('HAVE_PROFILER', have_profiler)
|
|
toppk |
f48abd2 |
xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
|
|
toppk |
f48abd2 |
cdata.set_quoted('XKB_BASE', xkb_base)
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
+if cc.has_header_symbol('sys/prctl.h', 'prctl')
|
|
toppk |
f48abd2 |
+ cdata.set('HAVE_SYS_PRCTL', 1)
|
|
toppk |
f48abd2 |
+endif
|
|
toppk |
f48abd2 |
+
|
|
toppk |
f48abd2 |
if have_wayland
|
|
toppk |
f48abd2 |
xwayland_path = get_option('xwayland_path')
|
|
toppk |
f48abd2 |
if xwayland_path == ''
|
|
toppk |
f48abd2 |
diff --git a/src/core/main.c b/src/core/main.c
|
|
toppk |
f48abd2 |
index 2724cf076..7f4f666d2 100644
|
|
toppk |
f48abd2 |
--- a/src/core/main.c
|
|
toppk |
f48abd2 |
+++ b/src/core/main.c
|
|
toppk |
f48abd2 |
@@ -70,6 +70,10 @@
|
|
toppk |
f48abd2 |
#include <systemd/sd-login.h>
|
|
toppk |
f48abd2 |
#endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
+#ifdef HAVE_SYS_PRCTL
|
|
toppk |
f48abd2 |
+#include <sys/prctl.h>
|
|
toppk |
f48abd2 |
+#endif
|
|
toppk |
f48abd2 |
+
|
|
toppk |
f48abd2 |
#include "backends/meta-backend-private.h"
|
|
toppk |
f48abd2 |
#include "backends/x11/cm/meta-backend-x11-cm.h"
|
|
toppk |
f48abd2 |
#include "backends/x11/meta-backend-x11.h"
|
|
toppk |
f48abd2 |
@@ -532,6 +536,10 @@ meta_init (void)
|
|
toppk |
f48abd2 |
MetaCompositorType compositor_type;
|
|
toppk |
f48abd2 |
GType backend_gtype;
|
|
toppk |
f48abd2 |
|
|
toppk |
f48abd2 |
+#ifdef HAVE_SYS_PRCTL
|
|
toppk |
f48abd2 |
+ prctl (PR_SET_DUMPABLE, 1);
|
|
toppk |
f48abd2 |
+#endif
|
|
toppk |
f48abd2 |
+
|
|
toppk |
f48abd2 |
sigemptyset (&empty_mask);
|
|
toppk |
f48abd2 |
act.sa_handler = SIG_IGN;
|
|
toppk |
f48abd2 |
act.sa_mask = empty_mask;
|
|
toppk |
f48abd2 |
--
|
|
toppk |
f48abd2 |
2.22.0
|
|
toppk |
f48abd2 |
|