rand/noise.c, progs/pixie.c: Don't ignore return codes from setuid(2) etc.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 8 Aug 2017 22:41:44 +0000 (23:41 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 14 Aug 2017 12:28:49 +0000 (13:28 +0100)
Legitimate warnings, I think, but not worth doing anything complicated
about.

progs/pixie.c
rand/noise.c

index 4380703..7694d74 100644 (file)
@@ -1244,7 +1244,7 @@ int main(int argc, char *argv[])
   /* --- Set up the locked memory area --- */
 
   l_init(&lm, 16384);
-  setuid(getuid());
+  if (setuid(getuid())) _exit(125);
 
   /* --- Parse command line arguments --- */
 
index de120d8..280c49c 100644 (file)
@@ -388,16 +388,15 @@ int noise_filter(rand_pool *r, int good, const char *c)
     /* --- Play games with uids --- */
 
     if (noise_gid != NOISE_NOSETGID) {
-      setgid(noise_gid);
-      setegid(noise_gid);
+      if (setgid(noise_gid) || setegid(noise_gid)
 #ifdef HAVE_SETGROUPS
-      setgroups(1, &noise_gid);
+         || setgroups(1, &noise_gid)
 #endif
+       ) _exit(127);
     }
 
     if (noise_uid != NOISE_NOSETUID) {
-      setuid(noise_uid);
-      seteuid(noise_uid);
+      if (setuid(noise_uid) || seteuid(noise_uid)) _exit(127);
     }
 
     /* --- Start the process up --- */