summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2016-12-02 12:08:26 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2016-12-03 10:00:08 +0000
commit334ed65e2765062a449897d70925255929eae8a8 (patch)
tree3cbd5c8bd1c3ddaa4572d18d72bae33a2c2af756 /Src
parentfd2ca229ddfc913f14f3b4b27fe8dcb25a5bba1d (diff)
downloadzsh-334ed65e2765062a449897d70925255929eae8a8.tar.gz
zsh-334ed65e2765062a449897d70925255929eae8a8.tar.xz
zsh-334ed65e2765062a449897d70925255929eae8a8.zip
40068: Abort execution when setuid/setgid fail.
The incumbent code would print an error message and continue execution
with the previous uid/gid values, not even setting lastval:

    % UID=42 id -u; echo $?
    zsh: failed to change user ID: operation not permitted
    1000
    0
    %
Diffstat (limited to 'Src')
-rw-r--r--Src/params.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Src/params.c b/Src/params.c
index 21a910190..c64d7486b 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -4077,7 +4077,7 @@ uidsetfn(UNUSED(Param pm), zlong x)
 {
 #ifdef HAVE_SETUID
     if (setuid((uid_t)x))
-	zwarn("failed to change user ID: %e", errno);
+	zerr("failed to change user ID: %e", errno);
 #endif
 }
 
@@ -4098,7 +4098,7 @@ euidsetfn(UNUSED(Param pm), zlong x)
 {
 #ifdef HAVE_SETEUID
     if (seteuid((uid_t)x))
-	zwarn("failed to change effective user ID: %e", errno);
+	zerr("failed to change effective user ID: %e", errno);
 #endif
 }
 
@@ -4119,7 +4119,7 @@ gidsetfn(UNUSED(Param pm), zlong x)
 {
 #ifdef HAVE_SETUID
     if (setgid((gid_t)x))
-	zwarn("failed to change group ID: %e", errno);
+	zerr("failed to change group ID: %e", errno);
 #endif
 }
 
@@ -4140,7 +4140,7 @@ egidsetfn(UNUSED(Param pm), zlong x)
 {
 #ifdef HAVE_SETEUID
     if (setegid((gid_t)x))
-	zwarn("failed to change effective group ID: %e", errno);
+	zerr("failed to change effective group ID: %e", errno);
 #endif
 }