49 lines
1.2 KiB
Diff
49 lines
1.2 KiB
Diff
From cd3a440b562e6efc713ce1524678dd068a85bf91 Mon Sep 17 00:00:00 2001
|
|
From: Matteo Croce <teknoraver@meta.com>
|
|
Date: Fri, 7 Jun 2024 00:29:32 +0200
|
|
Subject: [PATCH] sysctl: return error on permission denied
|
|
|
|
When trying to write to a readonly sysctl or a directory by mistake,
|
|
sysctl still returns success:
|
|
|
|
# sysctl kernel.version=foo
|
|
sysctl: setting key "kernel.version": Operation not permitted
|
|
# echo $?
|
|
0
|
|
# sysctl kernel=foo
|
|
sysctl: setting key "kernel": Operation not permitted
|
|
# echo $?
|
|
0
|
|
|
|
Let sysctl return error in both the cases above.
|
|
|
|
Signed-off-by: Matteo Croce <teknoraver@meta.com>
|
|
---
|
|
src/sysctl.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/sysctl.c b/src/sysctl.c
|
|
index 087ddabe..1914203c 100644
|
|
--- a/src/sysctl.c
|
|
+++ b/src/sysctl.c
|
|
@@ -585,14 +585,14 @@ static int WriteSetting(
|
|
errno = EPERM;
|
|
xwarn(_("setting key \"%s\""), dotted_key);
|
|
free(dotted_key);
|
|
- return rc;
|
|
+ return EXIT_FAILURE;
|
|
}
|
|
|
|
if (S_ISDIR(ts.st_mode)) {
|
|
errno = EISDIR;
|
|
xwarn(_("setting key \"%s\""), dotted_key);
|
|
free(dotted_key);
|
|
- return rc;
|
|
+ return EXIT_FAILURE;
|
|
}
|
|
|
|
if (!DryRun) {
|
|
--
|
|
GitLab
|
|
|