116 lines
3.8 KiB
Diff
116 lines
3.8 KiB
Diff
From e6fad9f1bcdf98fe8636b1f41da55afd75a0832d Mon Sep 17 00:00:00 2001
|
|
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
|
Date: Tue, 13 Jan 2026 17:45:45 +0100
|
|
Subject: [PATCH] Revert "Define helper to call PR_SET_DUMPABLE"
|
|
|
|
This reverts commit 2271674c5776fa8308ad8d425e64246910366d2f.
|
|
|
|
Reverts: RHEL-104135
|
|
---
|
|
src/coredump/coredump.c | 3 ++-
|
|
src/shared/coredump-util.c | 7 -------
|
|
src/shared/coredump-util.h | 2 --
|
|
src/shared/elf-util.c | 4 ++--
|
|
src/shared/tests.c | 1 -
|
|
5 files changed, 4 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c
|
|
index caec4bb76c..7bde2f5196 100644
|
|
--- a/src/coredump/coredump.c
|
|
+++ b/src/coredump/coredump.c
|
|
@@ -3,6 +3,7 @@
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
#include <sys/mount.h>
|
|
+#include <sys/prctl.h>
|
|
#include <sys/statvfs.h>
|
|
#include <sys/auxv.h>
|
|
#include <sys/xattr.h>
|
|
@@ -2015,7 +2016,7 @@ static int run(int argc, char *argv[]) {
|
|
log_set_target_and_open(LOG_TARGET_KMSG);
|
|
|
|
/* Make sure we never enter a loop */
|
|
- (void) set_dumpable(SUID_DUMP_DISABLE);
|
|
+ (void) prctl(PR_SET_DUMPABLE, SUID_DUMP_DISABLE);
|
|
|
|
/* Ignore all parse errors */
|
|
(void) parse_config();
|
|
diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c
|
|
index 0050e133c4..805503f366 100644
|
|
--- a/src/shared/coredump-util.c
|
|
+++ b/src/shared/coredump-util.c
|
|
@@ -1,21 +1,14 @@
|
|
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
#include <elf.h>
|
|
-#include <sys/prctl.h>
|
|
|
|
#include "coredump-util.h"
|
|
-#include "errno-util.h"
|
|
#include "extract-word.h"
|
|
#include "fileio.h"
|
|
#include "string-table.h"
|
|
#include "unaligned.h"
|
|
#include "virt.h"
|
|
|
|
-int set_dumpable(SuidDumpMode mode) {
|
|
- /* Cast mode explicitly to long, because prctl wants longs but is varargs. */
|
|
- return RET_NERRNO(prctl(PR_SET_DUMPABLE, (long) mode));
|
|
-}
|
|
-
|
|
static const char *const coredump_filter_table[_COREDUMP_FILTER_MAX] = {
|
|
[COREDUMP_FILTER_PRIVATE_ANONYMOUS] = "private-anonymous",
|
|
[COREDUMP_FILTER_SHARED_ANONYMOUS] = "shared-anonymous",
|
|
diff --git a/src/shared/coredump-util.h b/src/shared/coredump-util.h
|
|
index b18cb33c84..73c74c98c7 100644
|
|
--- a/src/shared/coredump-util.h
|
|
+++ b/src/shared/coredump-util.h
|
|
@@ -32,8 +32,6 @@ typedef enum SuidDumpMode {
|
|
_SUID_DUMP_MODE_MAX,
|
|
} SuidDumpMode;
|
|
|
|
-int set_dumpable(SuidDumpMode mode);
|
|
-
|
|
const char* coredump_filter_to_string(CoredumpFilter i) _const_;
|
|
CoredumpFilter coredump_filter_from_string(const char *s) _pure_;
|
|
int coredump_filter_mask_from_string(const char *s, uint64_t *ret);
|
|
diff --git a/src/shared/elf-util.c b/src/shared/elf-util.c
|
|
index ff8818de27..a3ff1fd3fb 100644
|
|
--- a/src/shared/elf-util.c
|
|
+++ b/src/shared/elf-util.c
|
|
@@ -6,12 +6,12 @@
|
|
#include <elfutils/libdwelf.h>
|
|
#include <elfutils/libdwfl.h>
|
|
#include <libelf.h>
|
|
+#include <sys/prctl.h>
|
|
#include <sys/resource.h>
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
|
|
#include "alloc-util.h"
|
|
-#include "coredump-util.h"
|
|
#include "dlfcn-util.h"
|
|
#include "elf-util.h"
|
|
#include "errno-util.h"
|
|
@@ -825,7 +825,7 @@ int parse_elf_object(int fd, const char *executable, const char *root, bool fork
|
|
if (r == 0) {
|
|
/* We want to avoid loops, given this can be called from systemd-coredump */
|
|
if (fork_disable_dump) {
|
|
- r = set_dumpable(SUID_DUMP_DISABLE);
|
|
+ r = RET_NERRNO(prctl(PR_SET_DUMPABLE, 0));
|
|
if (r < 0)
|
|
report_errno_and_exit(error_pipe[1], r);
|
|
}
|
|
diff --git a/src/shared/tests.c b/src/shared/tests.c
|
|
index 88031e90d9..50b30ca17d 100644
|
|
--- a/src/shared/tests.c
|
|
+++ b/src/shared/tests.c
|
|
@@ -16,7 +16,6 @@
|
|
#include "bus-wait-for-jobs.h"
|
|
#include "cgroup-setup.h"
|
|
#include "cgroup-util.h"
|
|
-#include "coredump-util.h"
|
|
#include "env-file.h"
|
|
#include "env-util.h"
|
|
#include "fd-util.h"
|