]> diplodocus.org Git - nmh/blobdiff - uip/slocal.c
Alter HasSuffixC()'s char * to be const.
[nmh] / uip / slocal.c
index ff3cabf87bf7e4834c72489b8200a4b59cdddcd5..772c4e2bb0fc55dd88abdf60021c4cf0dc5f0b16 100644 (file)
@@ -183,14 +183,14 @@ int
 main (int argc, char **argv)
 {
     int fd, status;
 main (int argc, char **argv)
 {
     int fd, status;
-    FILE *fp = stdin;
+    FILE *fp;
     char *cp, *mdlvr = NULL, buf[BUFSIZ];
     char mailbox[BUFSIZ], tmpfil[BUFSIZ];
     char **argp, **arguments;
 
     if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
 
     char *cp, *mdlvr = NULL, buf[BUFSIZ];
     char mailbox[BUFSIZ], tmpfil[BUFSIZ];
     char **argp, **arguments;
 
     if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
 
-    mts_init (invo_name);
+    mts_init ();
     arguments = getarguments (invo_name, argc, argv, 0);
     argp = arguments;
 
     arguments = getarguments (invo_name, argc, argv, 0);
     argp = arguments;
 
@@ -273,13 +273,16 @@ main (int argc, char **argv)
 
     if (addr == NULL)
        addr = getusername ();
 
     if (addr == NULL)
        addr = getusername ();
-    if (user == NULL)
-       user = (cp = strchr(addr, '.')) ? ++cp : addr;
+    if (user == NULL) {
+       user = getusername ();
+    }
     if ((pw = getpwnam (user)) == NULL)
        adios (NULL, "no such local user as %s", user);
 
     if (chdir (pw->pw_dir) == -1)
     if ((pw = getpwnam (user)) == NULL)
        adios (NULL, "no such local user as %s", user);
 
     if (chdir (pw->pw_dir) == -1)
-       chdir ("/");
+       if (chdir ("/") < 0) {
+           advise ("/", "chdir");
+       }
     umask (0077);
 
     if (geteuid() == 0) {
     umask (0077);
 
     if (geteuid() == 0) {
@@ -420,7 +423,7 @@ usr_delivery (int fd, char *delivery, int su)
     int i, accept, status=1, won, vecp, next;
     char *field, *pattern, *action, *result, *string;
     char buffer[BUFSIZ], tmpbuf[BUFSIZ];
     int i, accept, status=1, won, vecp, next;
     char *field, *pattern, *action, *result, *string;
     char buffer[BUFSIZ], tmpbuf[BUFSIZ];
-    char *cp, *vec[NVEC];
+    char *vec[NVEC];
     struct stat st;
     struct pair *p;
     FILE *fp;
     struct stat st;
     struct pair *p;
     FILE *fp;
@@ -449,9 +452,7 @@ usr_delivery (int fd, char *delivery, int su)
        if (*buffer == '#' || *buffer == '\n')
            continue;
 
        if (*buffer == '#' || *buffer == '\n')
            continue;
 
-       /* zap trailing newline */
-       if ((cp = strchr(buffer, '\n')))
-           *cp = 0;
+        TrimSuffixC(buffer, '\n');
 
        /* split buffer into fields */
        vecp = split (buffer, vec);
 
        /* split buffer into fields */
        vecp = split (buffer, vec);
@@ -760,7 +761,7 @@ parse (int fd)
                    }
                }
                if (p->p_name == NULL && i < NVEC) {
                    }
                }
                if (p->p_name == NULL && i < NVEC) {
-                   p->p_name = getcpy (name);
+                   p->p_name = mh_xstrdup(name);
                    p->p_value = lp;
                    p->p_flags = P_NIL;
                    p++, i++;
                    p->p_value = lp;
                    p->p_flags = P_NIL;
                    p++, i++;
@@ -871,7 +872,7 @@ glob (int fd)
     if ((p = lookup (vars, "size"))) {
        snprintf (buffer, sizeof(buffer), "%d",
                fstat (fd, &st) != -1 ? (int) st.st_size : 0);
     if ((p = lookup (vars, "size"))) {
        snprintf (buffer, sizeof(buffer), "%d",
                fstat (fd, &st) != -1 ? (int) st.st_size : 0);
-       p->p_value = getcpy (buffer);
+       p->p_value = mh_xstrdup(buffer);
     }
     if ((p = lookup (vars, "info")))
        p->p_value = getcpy (info);
     }
     if ((p = lookup (vars, "info")))
        p->p_value = getcpy (info);
@@ -1067,8 +1068,12 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress)
            /* child process */
            if (fd != 0)
                dup2 (fd, 0);
            /* child process */
            if (fd != 0)
                dup2 (fd, 0);
-           freopen ("/dev/null", "w", stdout);
-           freopen ("/dev/null", "w", stderr);
+           if (freopen ("/dev/null", "w", stdout) == NULL) {
+               advise ("stdout", "freopen");
+           }
+           if (freopen ("/dev/null", "w", stderr) == NULL) {
+               advise ("stderr", "freopen");
+           }
            if (fd != 3)
                dup2 (fd, 3);
            closefds (4);
            if (fd != 3)
                dup2 (fd, 3);
            closefds (4);
@@ -1120,16 +1125,15 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress)
                            pidstatus (status, stdout, ", failed");
                }
                return (status == 0 ? 0 : -1);
                            pidstatus (status, stdout, ", failed");
                }
                return (status == 0 ? 0 : -1);
-           } else {
-               /*
-                * Ruthlessly kill the child and anything
-                * else in its process group.
-                */
-               killpg(child_id, SIGKILL);
-               if (verbose)
-                   verbose_printf (", timed-out; terminated\n");
-               return -1;
            }
            }
+            /*
+             * Ruthlessly kill the child and anything
+             * else in its process group.
+             */
+            killpg(child_id, SIGKILL);
+            if (verbose)
+                verbose_printf (", timed-out; terminated\n");
+            return -1;
     }
 }
 
     }
 }
 
@@ -1156,11 +1160,11 @@ get_sender (char *envelope, char **sender)
     char buffer[BUFSIZ];
 
     if (envelope == NULL) {
     char buffer[BUFSIZ];
 
     if (envelope == NULL) {
-       *sender = getcpy ("");
+       *sender = mh_xstrdup("");
        return;
     }
 
        return;
     }
 
-    i = strlen ("From ");
+    i = LEN("From ");
     strncpy (buffer, envelope + i, sizeof(buffer));
     if ((cp = strchr(buffer, '\n'))) {
        *cp = 0;
     strncpy (buffer, envelope + i, sizeof(buffer));
     if ((cp = strchr(buffer, '\n'))) {
        *cp = 0;
@@ -1177,7 +1181,7 @@ get_sender (char *envelope, char **sender)
            *cp = 0;
        else
            break;
            *cp = 0;
        else
            break;
-    *sender = getcpy (buffer);
+    *sender = mh_xstrdup(buffer);
 }
 
 
 }
 
 
@@ -1246,13 +1250,13 @@ you_lose:
      * and massage the headers.  Save
      * a copy of the "From " line for later.
      */
      * and massage the headers.  Save
      * a copy of the "From " line for later.
      */
-    i = strlen ("From ");
+    i = LEN("From ");
     while (fgets (buffer, sizeof(buffer), qfp)) {
        if (first) {
            first = 0;
            if (!strncmp (buffer, "From ", i)) {
                /* get copy of envelope information ("From " line) */
     while (fgets (buffer, sizeof(buffer), qfp)) {
        if (first) {
            first = 0;
            if (!strncmp (buffer, "From ", i)) {
                /* get copy of envelope information ("From " line) */
-               envelope = getcpy (buffer);
+               envelope = mh_xstrdup(buffer);
 
                /* Put the delivery date in message */
                fputs (ddate, ffp);
 
                /* Put the delivery date in message */
                fputs (ddate, ffp);
@@ -1321,7 +1325,7 @@ trim (char *cp)
            *sp = ' ';
 
     /* now return a copy */
            *sp = ' ';
 
     /* now return a copy */
-    return getcpy(bp);
+    return mh_xstrdup(bp);
 }
 
 /*
 }
 
 /*