X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/3dc0fe0bcb41205700cf9229cb6d7bbfd95a3c2a..3c516d410d256012f843944b0f43a77d8c1ac146:/sbr/m_getfld.c diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c index 45bcebab..f84d2933 100644 --- a/sbr/m_getfld.c +++ b/sbr/m_getfld.c @@ -313,7 +313,10 @@ void m_getfld_state_destroy (m_getfld_state_t *gstate) { m_getfld_state_t s = *gstate; if (s) { - if (s->fdelim) free (s->fdelim-1); + if (s->fdelim) { + free (s->fdelim-1); + free (s->pat_map); + } free (s); *gstate = 0; } @@ -799,6 +802,7 @@ m_unknown(m_getfld_state_t *gstate, FILE *iob) } else { /* not a Unix style maildrop */ s->readpos -= s->bytes_read; + s->bytes_read = 0; delimstr = mmdlm2; s->msg_style = MS_MMDF; } @@ -883,6 +887,7 @@ m_Eom (m_getfld_state_t s, int c) Note that on input, a character had already been read with Getc(). It will be unget by m_getfld () on return. */ s->readpos -= s->bytes_read - 1; + s->bytes_read = 1; return 0; }