]> source.dussan.org Git - rspamd.git/commitdiff
* Allocate some more bytes for read buffer to avoid incorrect behavoiur
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 27 Jul 2010 16:08:50 +0000 (20:08 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Tue, 27 Jul 2010 16:08:50 +0000 (20:08 +0400)
src/buffer.c

index 6c68875576e6745fe53a4ee083c696f39ea7039a..d0c36f8eaf5839f4bd6fd94c2313d32935a08b33 100644 (file)
@@ -268,7 +268,7 @@ read_buffers (int fd, rspamd_io_dispatcher_t * d, gboolean skip_read)
                        d->in_buf->data = fstralloc (d->pool, BUFSIZ);
                }
                else {
-                       d->in_buf->data = fstralloc (d->pool, d->nchars);
+                       d->in_buf->data = fstralloc (d->pool, d->nchars + 1);
                }
                d->in_buf->pos = d->in_buf->data->begin;
        }
@@ -535,7 +535,7 @@ rspamd_set_dispatcher_policy (rspamd_io_dispatcher_t * d, enum io_policy policy,
                /* Resize input buffer if needed */
                if (policy == BUFFER_CHARACTER && nchars != 0) {
                        if (d->in_buf && d->in_buf->data->size < nchars) {
-                               tmp = fstralloc (d->pool, d->nchars);
+                               tmp = fstralloc (d->pool, d->nchars + 1);
                                memcpy (tmp->begin, d->in_buf->data->begin, d->in_buf->data->len);
                                t = d->in_buf->pos - d->in_buf->data->begin;
                                tmp->len = d->in_buf->data->len;