|
|
switch (fork()) { | switch (fork()) { |
case 0: /* child */ | case 0: /* child */ |
seteuid(getuid()); /* reduce likelyhood of security holes when running setuid */ | seteuid(getuid()); /* reduce likelyhood of security holes when running setuid */ |
if(p_option) |
if(p_option) { |
execl("/bin/umount", "/bin/umount", fullName, "-n", NULL); |
execlp("pumount", "pumount", fullName, "-n", NULL); |
else |
execlp("umount", "umount", fullName, "-n", NULL); |
execl("/bin/umount", "/bin/umount", fullName, NULL); |
} else { |
fprintf(stderr, _("%s: unable to exec /bin/umount of `%s': %s\n"), |
execlp("pumount", "pumount", fullName, NULL); |
|
execlp("umount", "umount", fullName, NULL); |
|
} |
|
fprintf(stderr, _("%s: unable to exec umount of `%s': %s\n"), |
programName, fullName, strerror(errno)); | programName, fullName, strerror(errno)); |
exit(1); | exit(1); |
break; | break; |