X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8bb0f8000b86df9270f2410de3fb6f41fa63e88b..11e2fb2dbbc074cce78d62fdf425e6bbf1918949:/uip/forwsbr.c diff --git a/uip/forwsbr.c b/uip/forwsbr.c index 901e6328..295507d6 100644 --- a/uip/forwsbr.c +++ b/uip/forwsbr.c @@ -107,9 +107,10 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, fmt_appendcomp(i, name, msgbuf); } } - while (state == FLDPLUS) + while (state == FLDPLUS) { msg_count = sizeof msgbuf; state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); + } break; case LENERR: @@ -122,7 +123,6 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, adios(NULL, "m_getfld() returned %d", state); } } - m_getfld_state_destroy (&gstate); /* * Override any components just in case they were included in the @@ -135,6 +135,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, */ finished: + m_getfld_state_destroy (&gstate); cptr = fmt_findcomp ("digest"); if (cptr) { @@ -173,14 +174,16 @@ finished: } cp = m_mktemp2(NULL, invo_name, NULL, &tmp); - if (cp == NULL) adios("forw", "unable to create temporary file"); + if (cp == NULL) { + adios(NULL, "unable to create temporary file in %s", get_temp_dir()); + } strncpy (tmpfil, cp, sizeof(tmpfil)); - unlink (tmpfil); + (void) m_unlink (tmpfil); if ((in = dup (fileno (tmp))) == NOTOK) adios ("dup", "unable to"); line = mh_xmalloc ((unsigned) fmtsize); - fmt_scan (fmt, line, fmtsize - 1, fmtsize, dat); + fmt_scan (fmt, line, fmtsize - 1, fmtsize, dat, NULL); fputs (line, tmp); free (line); if (fclose (tmp))