From d812b5e3315cedafbd359b2c4b06c6bcccd951ac Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 21 Dec 2000 17:14:07 +0000 Subject: Update the doc comment: since it always NUL-terminates the buffer, it * camel-stream-buffer.c (camel_stream_buffer_gets): Update the doc comment: since it always NUL-terminates the buffer, it reads at most @max-1 bytes, not @max. * camel-remote-store.c (remote_recv_line): Fix the "did camel_stream_buffer_gets fill the whole buffer" check. Fixes a bug when reading lines longer than 1024 characters (eg, IMAP SEARCH responses in very large folders). svn path=/trunk/; revision=7117 --- camel/ChangeLog | 11 +++++++++++ camel/camel-remote-store.c | 6 +++--- camel/camel-stream-buffer.c | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index da7caa6cf2..272f058ad4 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,14 @@ +2000-12-21 Dan Winship + + * camel-stream-buffer.c (camel_stream_buffer_gets): Update the + doc comment: since it always NUL-terminates the buffer, it reads + at most @max-1 bytes, not @max. + + * camel-remote-store.c (remote_recv_line): Fix the "did + camel_stream_buffer_gets fill the whole buffer" check. Fixes a bug + when reading lines longer than 1024 characters (eg, IMAP SEARCH + responses in very large folders). + 2000-12-19 Dan Winship * providers/imap/camel-imap-folder.c (imap_refresh_info): Oops. diff --git a/camel/camel-remote-store.c b/camel/camel-remote-store.c index c69ba3591e..3a64f59ce6 100644 --- a/camel/camel-remote-store.c +++ b/camel/camel-remote-store.c @@ -409,7 +409,7 @@ remote_recv_line (CamelRemoteStore *store, char **dest, CamelException *ex) { CamelStreamBuffer *stream = CAMEL_STREAM_BUFFER (store->istream); GByteArray *bytes; - gchar buf[1025], *ret; + gchar buf[1024], *ret; gint nread; *dest = NULL; @@ -434,10 +434,10 @@ remote_recv_line (CamelRemoteStore *store, char **dest, CamelException *ex) bytes = g_byte_array_new (); do { - nread = camel_stream_buffer_gets (stream, buf, 1024); + nread = camel_stream_buffer_gets (stream, buf, sizeof (buf)); if (nread > 0) g_byte_array_append (bytes, buf, nread); - } while (nread == 1024); + } while (nread == sizeof (buf) - 1); g_byte_array_append (bytes, "", 1); ret = bytes->data; diff --git a/camel/camel-stream-buffer.c b/camel/camel-stream-buffer.c index dd5f0bc287..7df9fa30ee 100644 --- a/camel/camel-stream-buffer.c +++ b/camel/camel-stream-buffer.c @@ -357,7 +357,7 @@ stream_eos (CamelStream *stream) * @max: Maxmimum number of characters to store. * * Read a line of characters up to the next newline character or - * @max characters. + * @max-1 characters. * * If the newline character is encountered, then it will be * included in the buffer @buf. The buffer will be #NUL terminated. -- cgit v1.2.3