Don't forget to check the return values of setuid and friends.
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 23 Feb 2013 21:00:29 +0000 (21:00 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 23 Feb 2013 21:00:29 +0000 (21:00 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@9764 cda61777-01e9-0310-a592-d414129be87e

unix/uxpty.c

index a1f9694..2bfb85b 100644 (file)
@@ -531,11 +531,23 @@ void pty_pre_init(void)
        int gid = getgid(), uid = getuid();
        int setresgid(gid_t, gid_t, gid_t);
        int setresuid(uid_t, uid_t, uid_t);
-       setresgid(gid, gid, gid);
-       setresuid(uid, uid, uid);
+       if (setresgid(gid, gid, gid) < 0) {
+            perror("setresgid");
+            exit(1);
+        }
+       if (setresuid(uid, uid, uid) < 0) {
+            perror("setresuid");
+            exit(1);
+        }
 #else
-       setgid(getgid());
-       setuid(getuid());
+       if (setgid(getgid()) < 0) {
+            perror("setgid");
+            exit(1);
+        }
+       if (setuid(getuid()) < 0) {
+            perror("setuid");
+            exit(1);
+        }
 #endif
     }
 }