bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#52800: [PATCH] maint: fix prctl arguments


From: Pádraig Brady
Subject: bug#52800: [PATCH] maint: fix prctl arguments
Date: Sun, 26 Dec 2021 17:26:20 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Thunderbird/95.0

On 26/12/2021 05:17, Max Filippov wrote:
When configured with --enable-single-binary tools issue incorrect prctl:

   prctl(PR_SET_KEEPCAPS, 1071091381)      = -1 EINVAL (Invalid argument)

PR_SET_MM_ARG_START is not a prctl 'option' parameter, it's 'arg2'
parameter for the option PR_SET_MM. It also has to have 'arg4' and
'arg5' set to 0 explicitly, otherwise the kernel also returns -EINVAL.

* src/coreutils.c (launch_program): Fix prctl arguments.
---
  src/coreutils.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/coreutils.c b/src/coreutils.c
index 6db5a8f05ce3..d8f6e97a6d2f 100644
--- a/src/coreutils.c
+++ b/src/coreutils.c
@@ -121,7 +121,7 @@ launch_program (char const *prog_name, int prog_argc, char 
**prog_argv)
  #if HAVE_PRCTL && defined PR_SET_MM_ARG_START
    /* Shift the beginning of the command line to prog_argv[0] (if set) so
       /proc/pid/cmdline reflects the right value.  */
-  prctl (PR_SET_MM_ARG_START, prog_argv[0]);
+  prctl (PR_SET_MM, PR_SET_MM_ARG_START, prog_argv[0], 0, 0);
  #endif
exit (prog_main (prog_argc, prog_argv));

Nice one.

This functionality allows programs like ps to attribute
to more specific "utilities", rather than the general "coreutils" binary.

However this is only available with CAP_SYS_RESOURCE or root.
Note CAP_SYS_RESOURCE wouldn't be appropriate to set on the coreutils binary in 
general.
I confirmed your patch is effective for coreutils invoked by root with:

$ src/sleep 5 & { sleep 1; tr '\0' '\n' < /proc/$!/cmdline; }
/home/padraig/git/coreutils/src/coreutils
--coreutils-prog-shebang=sleep
src/sleep
5

# src/sleep 5 & { sleep 1; tr '\0' '\n' < /proc/$!/cmdline; }
sleep
5

I'll apply later (with some adjustments to NEWS)
Marking this as done.

thanks!
Pádraig





reply via email to

[Prev in Thread] Current Thread [Next in Thread]