Annotation of 43BSD/contrib/mh/sbr/makedir.c, revision 1.1.1.1

1.1       root        1: /* makedir.c - make a directory */
                      2: 
                      3: #include "../h/mh.h"
                      4: #include <stdio.h>
                      5: 
                      6: 
                      7: makedir (dir)
                      8: register char *dir;
                      9: {
                     10:     int     pid;
                     11:     register char  *cp;
                     12: 
                     13:     m_update ();
                     14:     (void) fflush (stdout);
                     15: 
                     16: #ifdef BSD42
                     17:     if (getuid () == geteuid ()) {
                     18:        if (mkdir (dir, 0755) == NOTOK) {
                     19:            advise (dir, "unable to create directory");
                     20:            return 0;
                     21:        }
                     22:     }
                     23:     else
                     24: #endif BSD42
                     25:     switch (pid = vfork ()) {
                     26:        case NOTOK: 
                     27:            advise ("fork", "unable to");
                     28:            return 0;
                     29: 
                     30:        case OK: 
                     31:            (void) setgid (getgid ());
                     32:            (void) setuid (getuid ());
                     33: 
                     34:            execl ("/bin/mkdir", "mkdir", dir, NULLCP);
                     35:            execl ("/usr/bin/mkdir", "mkdir", dir, NULLCP);
                     36:            fprintf (stderr, "unable to exec ");
                     37:            perror ("mkdir");
                     38:            _exit (-1);
                     39: 
                     40:        default: 
                     41:            if (pidXwait (pid, "mkdir"))
                     42:                return 0;
                     43:            break;
                     44:     }
                     45: 
                     46:     if ((cp = m_find ("folder-protect")) == NULL)
                     47:        cp = foldprot;
                     48:     (void) chmod (dir, atooi (cp));
                     49:     return 1;
                     50: }
                     51: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.