From dcd20e18a5b581d93e8259722d5f1b69d3af992b Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 18 Jan 2011 12:26:05 +0100 Subject: [PATCH] Fix computation of NEWSIZE in es_func_mem_write. The function used to fail and return EINVAL when enlarging the buffer. --- common/ChangeLog | 4 ++++ common/estream.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/common/ChangeLog b/common/ChangeLog index 6a6f6e071..fe9eb4fc0 100644 --- a/common/ChangeLog +++ b/common/ChangeLog @@ -1,3 +1,7 @@ +2011-01-18 Werner Koch + + * estream.c (es_func_mem_write): FIX computation of NEWSIZE. + 2011-01-10 Werner Koch * session-env.c (update_var): Fix same value detection. Fixes diff --git a/common/estream.c b/common/estream.c index bc25452ed..416aa8376 100644 --- a/common/estream.c +++ b/common/estream.c @@ -641,7 +641,7 @@ es_func_mem_write (void *cookie, const void *buffer, size_t size) if (!mem_cookie->memory_size) newsize = size; /* Not yet allocated. */ else - newsize = mem_cookie->memory_size + (nleft - size); + newsize = mem_cookie->memory_size + (size - nleft); if (newsize < mem_cookie->offset) { _set_errno (EINVAL);