[hackers] [ubase] su: don't set $PATH || neeshy

From: <git_AT_suckless.org>
Date: Wed, 6 Mar 2024 10:14:32 +0100 (CET)

commit 4cd0b143801b1135abd2b7012cfed020710a4e68
Author: neeshy <neeshy_AT_tfwno.gf>
AuthorDate: Mon Feb 12 21:03:12 2024 -0500
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Wed Mar 6 10:12:49 2024 +0100

    su: don't set $PATH
    
    Just /bin is too restrictive, and login shells set the path anyway via
    the default profile. Also, carrying the path over for non-login shells
    conforms to the behavior of util-linux's su.

diff --git a/config.def.h b/config.def.h
index 577833e..257cfac 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -1,6 +1,5 @@
 /* See LICENSE file for copyright and license details. */
 
-#define ENV_SUPATH "/bin"
 #define ENV_PATH "/bin"
 #define PW_CIPHER "$6$" /* SHA-512 */
 #undef UTMP_PATH
diff --git a/su.c b/su.c
index 0f16637..eb8bea7 100644
--- a/su.c
+++ b/su.c
_AT_@ -9,7 +9,6 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "config.h"
 #include "passwd.h"
 #include "util.h"
 
_AT_@ -103,10 +102,6 @@ main(int argc, char *argv[])
                 newargv[0] = shell;
                 newargv[1] = NULL;
         }
- if (strcmp(pw->pw_name, "root") == 0)
- setenv("PATH", ENV_SUPATH, 1);
- else
- setenv("PATH", ENV_PATH, 1);
         execve(shell, newargv, environ);
         weprintf("execve %s:", shell);
         return (errno == ENOENT) ? 127 : 126;
Received on Wed Mar 06 2024 - 10:14:32 CET

This archive was generated by hypermail 2.3.0 : Wed Mar 06 2024 - 10:24:39 CET