Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Check return values of set*id functions
Baptiste Daroussin committed 9 years ago
commit 34f74627751acf1a029bef1863766ca5f6489bb4
parent b8708ae
1 file changed +8 -4
modified src/utils.c
@@ -1031,9 +1031,13 @@ drop_privileges(void)
		if (nobody == NULL)
			err(EXIT_FAILURE, "Unable to drop priviledges");
		setgroups(1, &nobody->pw_gid);
-
		setegid(nobody->pw_gid);
-
		setgid(nobody->pw_gid);
-
		seteuid(nobody->pw_uid);
-
		setuid(nobody->pw_uid);
+
		if (setegid(nobody->pw_gid) == -1)
+
			err(EXIT_FAILURE, "Unable to setegid");
+
		if (setgid(nobody->pw_gid) == -1)
+
			err(EXIT_FAILURE, "Unable to setgid");
+
		if (seteuid(nobody->pw_uid) == -1)
+
			err(EXIT_FAILURE, "Unable to seteuid");
+
		if (setuid(nobody->pw_uid) == -1)
+
			err(EXIT_FAILURE, "Unable to setuid");
	}
}