char *env = NULL;
sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
+
+ if(setuid(geteuid()) == -1) {
+ fprintf(stderr, "%s: setuid: %s\n", progname, strerror(errno));
+ res = -1;
+ goto out_restore;
+ }
+
execle("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
"-f", "-t", type, "-o", opts, fsname, mnt, NULL, &env);
fprintf(stderr, "%s: failed to execute /bin/mount: %s\n",
char *env = NULL;
sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
+
+ if(setuid(geteuid()) == -1) {
+ fprintf(stderr, "%s: setuid: %s\n", progname, strerror(errno));
+ res = -1;
+ goto out_restore;
+ }
+
if (lazy) {
execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
"-l", NULL, &env);
char *env = NULL;
sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
+
+ if(setuid(geteuid()) == -1) {
+ fprintf(stderr, "%s: setuid: %s\n", progname, strerror(errno));
+ res = -1;
+ goto out_restore;
+ }
+
execle("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
"--fake", mnt, NULL, &env);
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",