X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/485fa064f8388272fe00ebfd29e4babf6dfed019..9ffabd06f0dc8e7478b7484fceee4906990d44e2:/uip/mhparse.c?ds=sidebyside diff --git a/uip/mhparse.c b/uip/mhparse.c index 76dd7f71..ca01545f 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -173,7 +173,7 @@ struct str2init str2ces[] = { /* * NOTE WELL: si_key MUST NOT have value of NOTOK * - * si_key is 1 if access method is anonymous. + * si_val is 1 if access method is anonymous. */ struct str2init str2methods[] = { { "afs", 1, InitFile }, @@ -295,7 +295,7 @@ get_content (FILE *in, char *file, int toplevel) char *np, *vp; CT ct; HF hp; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; /* allocate the content structure */ NEW0(ct); @@ -307,10 +307,11 @@ get_content (FILE *in, char *file, int toplevel) * Parse the header fields for this * content into a linked list. */ - m_getfld_track_filepos (&gstate, in); + gstate = m_getfld_state_init(in); + m_getfld_track_filepos2(&gstate); for (compnum = 1;;) { int bufsz = sizeof buf; - switch (state = m_getfld (&gstate, name, buf, &bufsz, in)) { + switch (state = m_getfld2(&gstate, name, buf, &bufsz)) { case FLD: case FLDPLUS: compnum++; @@ -322,7 +323,7 @@ get_content (FILE *in, char *file, int toplevel) /* if necessary, get rest of field */ while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (&gstate, name, buf, &bufsz, in); + state = m_getfld2(&gstate, name, buf, &bufsz); vp = add (buf, vp); /* add to previous value */ } @@ -1840,7 +1841,10 @@ openBase64 (CT ct, char **file) *cp = '\0'; if (decodeBase64 (buffer, &decoded, &decoded_len, ct->c_type == CT_TEXT, - ct->c_digested ? digest : NULL) == OK) { + ct->c_digested ? digest : NULL) != OK) + goto clean_up; + + { size_t i; unsigned char *decoded_p = decoded; for (i = 0; i < decoded_len; ++i) { @@ -1863,8 +1867,6 @@ openBase64 (CT ct, char **file) } } } - } else { - goto clean_up; } fseek (ct->c_fp, 0L, SEEK_SET); @@ -2109,9 +2111,8 @@ openQuoted (CT ct, char **file) sizeof digest)) content_error (NULL, ct, "content integrity suspect (digest mismatch) -- continuing"); - else - if (debugsw) - fprintf (stderr, "content integrity confirmed\n"); + else if (debugsw) + fprintf (stderr, "content integrity confirmed\n"); } fseek (ce->ce_fp, 0L, SEEK_SET); @@ -2339,7 +2340,7 @@ openExternal (CT ct, CT cb, CE ce, char **file, int *fd) admonish (cachefile, "unable to fopen for reading"); } - *fd = fileno (ce->ce_fp); + *fd = ce->ce_fp ? fileno (ce->ce_fp) : -1; return OK; ready_already: @@ -2415,12 +2416,10 @@ openFile (CT ct, char **file) if (ferror (gp)) { admonish (ce->ce_file, "error reading"); (void) m_unlink (cachefile); - } - else - if (ferror (fp)) { - admonish (cachefile, "error writing"); - (void) m_unlink (cachefile); - } + } else if (ferror (fp)) { + admonish (cachefile, "error writing"); + (void) m_unlink (cachefile); + } fclose (fp); } umask (mask); @@ -2626,12 +2625,10 @@ openFTP (CT ct, char **file) if (ferror (gp)) { admonish (ce->ce_file, "error reading"); (void) m_unlink (cachefile); - } - else - if (ferror (fp)) { - admonish (cachefile, "error writing"); - (void) m_unlink (cachefile); - } + } else if (ferror (fp)) { + admonish (cachefile, "error writing"); + (void) m_unlink (cachefile); + } fclose (fp); } umask (mask); @@ -2896,7 +2893,7 @@ openURL (CT ct, char **file) fseeko(ce->ce_fp, 0, SEEK_SET); *file = ce->ce_file; - return fd; + return fileno(ce->ce_fp); }