]> diplodocus.org Git - nmh/blobdiff - sbr/refile.c
Fix invalid pointer arithmetic.
[nmh] / sbr / refile.c
index c675500f45bd9122f619dcbc6c303600bcd88bdb..3c4d4e2550b2d355cc15c94ae2d533d12fe4ded0 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * refile.c -- call the "fileproc" to refile the
+/* refile.c -- call the "fileproc" to refile the
  *          -- msg or draft into another folder
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
@@ -9,6 +7,7 @@
  */
 
 #include <h/mh.h>
+#include <h/utils.h>
 
 
 int
@@ -21,14 +20,14 @@ refile (char **arg, char *file)
 
     vec = argsplit(fileproc, &program, &vecp);
 
-    vec[vecp++] = getcpy("-nolink");   /* override bad .mh_profile defaults */
-    vec[vecp++] = getcpy("-nopreserve");
-    vec[vecp++] = getcpy("-file");
+    vec[vecp++] = mh_xstrdup("-nolink"); /* override bad .mh_profile defaults */
+    vec[vecp++] = mh_xstrdup("-nopreserve");
+    vec[vecp++] = mh_xstrdup("-file");
     vec[vecp++] = getcpy(file);
 
     if (arg) {
        while (*arg)
-           vec[vecp++] = *arg++;
+           vec[vecp++] = mh_xstrdup(*arg++);
     }
     vec[vecp] = NULL;
 
@@ -44,10 +43,10 @@ refile (char **arg, char *file)
            execvp (program, vec);
            fprintf (stderr, "unable to exec ");
            perror (fileproc);
-           _exit (-1);
+           _exit(1);
 
        default: 
            arglist_free(program, vec);
-           return (pidwait (pid, -1));
+           return pidwait(pid, -1);
     }
 }