X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=uip%2Finc.c;h=864574b50fa5fd7beb7335a031c09b08ce0c8bd2;hb=24414198cc168516126761a3040b71087c5778bc;hp=af8180d1c111f08204377ea5e0419cde39807584;hpb=4885712264980e6cbc2039f9158027bee9213475;p=mmh diff --git a/uip/inc.c b/uip/inc.c index af8180d..864574b 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -244,6 +244,7 @@ main (int argc, char **argv) struct stat st, s1; FILE *aud = NULL; char b[MAXPATHLEN + 1]; + char *maildir_copy; /* copy of mail directory because the static gets overwritten */ #ifdef POP int nmsgs, nbytes, p = 0; @@ -533,6 +534,11 @@ main (int argc, char **argv) } if (stat (newmail, &s1) == NOTOK || s1.st_size == 0) adios (NULL, "no mail to incorporate"); + + if ((cp = strdup(newmail)) == (char *)0) + adios (maildir, "error allocating memory to copy newmail"); + + newmail = cp; } #ifdef POP @@ -547,6 +553,9 @@ main (int argc, char **argv) folder = getfolder (0); maildir = m_maildir (folder); + if ((maildir_copy = strdup(maildir)) == (char *)0) + adios (maildir, "error allocating memory to copy maildir"); + if (stat (maildir, &st) == NOTOK) { if (errno != ENOENT) adios (maildir, "error on folder"); @@ -828,7 +837,7 @@ go_to_it: * Run the external program hook on the message. */ - (void)snprintf(b, sizeof (b), "%s/%d", maildir, msgnum + 1); + (void)snprintf(b, sizeof (b), "%s/%d", maildir_copy, msgnum + 1); (void)ext_hook("add-hook", b, (char *)0); if (aud)