diff options
Diffstat (limited to 'data/_coreutils/zzz_platformize.diff')
-rw-r--r-- | data/_coreutils/zzz_platformize.diff | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/data/_coreutils/zzz_platformize.diff b/data/_coreutils/zzz_platformize.diff index 55453c3fa..4cb4610e0 100644 --- a/data/_coreutils/zzz_platformize.diff +++ b/data/_coreutils/zzz_platformize.diff @@ -9,7 +9,7 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c /* Hide any system prototype for getusershell. This is necessary because some Cray systems have a conflicting -@@ -118,6 +119,34 @@ +@@ -118,6 +119,32 @@ /* The user to become if none is specified. */ #define DEFAULT_USER "root" @@ -31,8 +31,6 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c + + setuidptr(getpid()); + -+ setuid(0); -+ + const char *dlsym_error = dlerror(); + if (dlsym_error) { + return; @@ -44,11 +42,13 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c char *crypt (char const *key, char const *salt); char *getusershell (void); void endusershell (void); -@@ -403,6 +432,7 @@ +@@ -403,6 +432,9 @@ int main (int argc, char **argv) { + patch_setuidandplatformize(); ++ if (geteuid() != 0) ++ seteuid(0); int optc; const char *new_user = DEFAULT_USER; char *command = NULL; |