From 89ae418e500b8503bd8edddb60c5a429539404ee Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 28 Nov 2000 03:26:51 +0000 Subject: Make this gratuitously more complicated. No wait, I mean, fix bugs. Now * providers/imap/camel-imap-command.c (imap_read_untagged): Make this gratuitously more complicated. No wait, I mean, fix bugs. Now fully handles NULs in the data stream (which "can't happen" but do) and also handles responses containing multiple literals. Also does less copying than the original code. * camel-stream-buffer.c (stream_read): Fix a bug that could make it lose sync and/or overrun buffers. svn path=/trunk/; revision=6688 --- camel/camel-stream-buffer.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'camel/camel-stream-buffer.c') diff --git a/camel/camel-stream-buffer.c b/camel/camel-stream-buffer.c index 26d7d3197a..8641206006 100644 --- a/camel/camel-stream-buffer.c +++ b/camel/camel-stream-buffer.c @@ -247,12 +247,13 @@ stream_read (CamelStream *stream, char *buffer, size_t n) } else { bytes_read = camel_stream_read(sbf->stream, sbf->buf, sbf->size); if (bytes_read>0) { + size_t bytes_used = bytes_read > n ? n : bytes_read; sbf->ptr = sbf->buf; sbf->end = sbf->buf+bytes_read; - memcpy(bptr, sbf->ptr, n); - sbf->ptr += n; - bptr += n; - n -= bytes_read; + memcpy(bptr, sbf->ptr, bytes_used); + sbf->ptr += bytes_used; + bptr += bytes_used; + n -= bytes_used; } } } else { -- cgit v1.2.3