- } else {
- /*
- ** Ummm, why do we want to avoid creating directories
- ** with the effective user ID? None of the nmh tools are
- ** installed such that the effective should be different
- ** from the real, and if some parent process made the two
- ** be different, I don't see why it should be our job to
- ** enforce the real UID. Also, why the heck do we call
- ** the mkdir executable rather than the library function in
- ** this case?? If we do want to call the mkdir executable,
- ** we should at least be giving it -p (and change the single
- ** chmod() call below) so it can successfully create nested
- ** directories like the above code can.
- ** -- Dan Harkless <dan-nmh@dilvish.speed.net>
- */
- switch (pid = fork()) {
- case -1:
- advise("fork", "unable to");
- return 0;
-
- case 0:
- setgid(getgid());
- setuid(getuid());
-
- execl("/bin/mkdir", "mkdir", dir, NULL);
- execl("/usr/bin/mkdir", "mkdir", dir, NULL);
- fprintf(stderr, "unable to exec ");
- perror("mkdir");
- _exit(-1);
-
- default:
- if (pidXwait(pid, "mkdir"))
- return 0;
- break;
- }
-
- chmod(dir, folder_perms);