From abdfcfcfe2f4fb79a05bd0e2def3d65a668e96ae Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 14 Jun 2000 05:10:57 +0000 Subject: updated the crlf filter: encoder: allocate more memory (3 * len instead of 2 * len) decoder: prevent p from pointing beyond the end of the buffer svn path=/trunk/; revision=3561 --- camel/ChangeLog | 4 ++++ camel/camel-mime-filter-crlf.c | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index 964eab8fb6..d5e69538e3 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,9 @@ 2000-06-14 Jeffrey Stedfast + * camel-mime-filter-crlf.c (filter): Updated the encoder to allocate more + memory (since we are also now adding dots). Also updated the decoder as we + have found that it sometimes passes the end of the buffer. + * providers/pop3/camel-pop3-folder.c (get_message_by_uid): Took out the filter code ( we already filter in camel_pop3_command_get_additional_data) diff --git a/camel/camel-mime-filter-crlf.c b/camel/camel-mime-filter-crlf.c index 5cc409d554..8e3ff2175c 100644 --- a/camel/camel-mime-filter-crlf.c +++ b/camel/camel-mime-filter-crlf.c @@ -76,7 +76,7 @@ filter (CamelMimeFilter *f, char *in, size_t len, size_t prespace, do_dots = crlf->mode == CAMEL_MIME_FILTER_CRLF_MODE_CRLF_DOTS; if (crlf->direction == CAMEL_MIME_FILTER_CRLF_ENCODE) { - camel_mime_filter_set_size (f, 2 * len, FALSE); + camel_mime_filter_set_size (f, 3 * len, FALSE); p = in; q = f->outbuf; @@ -96,29 +96,29 @@ filter (CamelMimeFilter *f, char *in, size_t len, size_t prespace, while (p < in + len) { if (*p == '\r') { crlf->saw_cr = TRUE; - p++; } else { if (crlf->saw_cr) { if (*p != '\n') *q++ = '\r'; crlf->saw_cr = FALSE; } - *q++ = *p++; + *q++ = *p; } if (do_dots) { if (*p == '.' && *(p - 1) == '\n') { crlf->saw_dot = TRUE; - p++; } else { if (crlf->saw_dot) { if (*p == '.') p++; crlf->saw_dot = FALSE; } - *q++ = *p++; + *q++ = *p; } } + + p++; } } -- cgit