X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fdistsbr.c;h=e5f7bc55b29921d2ee6a6890b12816f8e4c76c0d;hp=0191037691f388840a6b86650b4ee86c3cb198aa;hb=2f689a1cb907a5de04e6d39ffd217a69af3216c7;hpb=9a33ff618b5901a3af815650d4b84d39ee96e529 diff --git a/uip/distsbr.c b/uip/distsbr.c index 0191037..e5f7bc5 100644 --- a/uip/distsbr.c +++ b/uip/distsbr.c @@ -30,7 +30,8 @@ int distout (char *drft, char *msgnam, char *backup) { int state; - register char *dp, *resent; + register unsigned char *dp; + register char *resent; char name[NAMESZ], buffer[BUFSIZ]; register FILE *ifp, *ofp; @@ -131,6 +132,7 @@ ready_msg (char *msgnam) int state, out; char name[NAMESZ], buffer[BUFSIZ], tmpfil[BUFSIZ]; register FILE *ifp, *ofp; + char *cp = NULL; if (hdrfd != NOTOK) close (hdrfd), hdrfd = NOTOK; @@ -140,9 +142,12 @@ ready_msg (char *msgnam) if ((ifp = fopen (msgnam, "r")) == NULL) adios (msgnam, "unable to open message"); - strncpy (tmpfil, m_tmpfil ("dist"), sizeof(tmpfil)); - if ((hdrfd = open (tmpfil, O_RDWR | O_CREAT | O_TRUNC, 0600)) == NOTOK) - adios (tmpfil, "unable to re-open temporary file"); + cp = m_mktemp2(NULL, "dist", &hdrfd, NULL); + if (cp == NULL) { + adios("distsbr", "unable to create temporary file"); + } + fchmod(hdrfd, 0600); + strncpy(tmpfil, cp, sizeof(tmpfil)); if ((out = dup (hdrfd)) == NOTOK || (ofp = fdopen (out, "w")) == NULL) adios (NULL, "no file descriptors -- you lose big"); @@ -170,9 +175,12 @@ ready_msg (char *msgnam) case BODYEOF: fclose (ofp); - strncpy (tmpfil, m_tmpfil ("dist"), sizeof(tmpfil)); - if ((txtfd = open (tmpfil, O_RDWR | O_CREAT | O_TRUNC, 0600)) == NOTOK) - adios (tmpfil, "unable to open temporary file"); + cp = m_mktemp2(NULL, "dist", &txtfd, NULL); + if (cp == NULL) { + adios("distsbr", "unable to create temporary file"); + } + fchmod(txtfd, 0600); + strncpy (tmpfil, cp, sizeof(tmpfil)); if ((out = dup (txtfd)) == NOTOK || (ofp = fdopen (out, "w")) == NULL) adios (NULL, "no file descriptors -- you lose big");