1.1 --- a/sup.c Mon Dec 14 02:17:20 2009 +0100
1.2 +++ b/sup.c Mon Jan 04 00:06:28 2010 +0100
1.3 @@ -18,8 +18,8 @@
1.4
1.5 #include "config.h"
1.6
1.7 -static int die(int ret, const char *str) {
1.8 - fprintf (stderr, "%s\n", str);
1.9 +static int die(int ret, const char *org, const char *str) {
1.10 + fprintf (stderr, "%s%s%s\n", org, org?": ":"", str);
1.11 return ret;
1.12 }
1.13
1.14 @@ -27,10 +27,10 @@
1.15 int i, uid, gid, ret;
1.16
1.17 if (argc < 2 || !strcmp (argv[1], "-h"))
1.18 - return die (1, HELP);
1.19 + return die (1, NULL, HELP);
1.20
1.21 if (!strcmp (argv[1], "-v"))
1.22 - return die (1, VERSION);
1.23 + return die (1, NULL, VERSION);
1.24
1.25 if (!strcmp (argv[1], "-l")) {
1.26 for (i = 0; rules[i].cmd != NULL; i++)
1.27 @@ -48,29 +48,29 @@
1.28 struct stat st;
1.29 lstat (rules[i].path, &st);
1.30 if (st.st_mode & 0222)
1.31 - return die (1, "Cannot run writable binaries.");
1.32 + return die (1, "stat", "Cannot run writable binaries.");
1.33 #endif
1.34 if (uid != SETUID && rules[i].uid != -1 && rules[i].uid != uid)
1.35 - return die (1, "User does not match");
1.36 + return die (1, "urule", "User does not match");
1.37
1.38 if (gid != SETGID && rules[i].gid != -1 && rules[i].gid != gid)
1.39 - return die (1, "Group id does not match");
1.40 + return die (1, "grule", "Group id does not match");
1.41
1.42 if (setuid (SETUID) == -1 || setgid (SETGID) == -1 ||
1.43 seteuid (SETUID) == -1 || setegid (SETGID) == -1)
1.44 - return die (1, strerror (errno));
1.45 + return die (1, "set[e][ug]id", strerror (errno));
1.46 #ifdef CHROOT
1.47 if (*CHROOT)
1.48 if (chdir (CHROOT) == -1 || chroot (".") == -1)
1.49 - return die (1, strerror (errno));
1.50 + return die (1, "chroot", strerror (errno));
1.51 if (*CHRDIR)
1.52 if (chdir (CHRDIR) == -1)
1.53 - return die (1, strerror (errno));
1.54 + return die (1, "chdir", strerror (errno));
1.55 #endif
1.56 ret = execv (*rules[i].path? rules[i].path:argv[1], argv+1);
1.57 - return die (ret, strerror (errno));
1.58 + return die (ret, "execv", strerror (errno));
1.59 }
1.60 }
1.61
1.62 - return die (1, "Sorry");
1.63 + return die (1, NULL, "Sorry");
1.64 }