Fix computation of NEWSIZE in es_func_mem_write.
authorWerner Koch <wk@gnupg.org>
Tue, 18 Jan 2011 11:26:05 +0000 (12:26 +0100)
committerWerner Koch <wk@gnupg.org>
Tue, 18 Jan 2011 11:26:05 +0000 (12:26 +0100)
The function used to fail and return EINVAL when enlarging the buffer.

common/ChangeLog
common/estream.c

index 6a6f6e0..fe9eb4f 100644 (file)
@@ -1,3 +1,7 @@
+2011-01-18  Werner Koch  <wk@g10code.com>
+
+       * estream.c (es_func_mem_write): FIX computation of NEWSIZE.
+
 2011-01-10  Werner Koch  <wk@g10code.com>
 
        * session-env.c (update_var): Fix same value detection.  Fixes
index bc25452..416aa83 100644 (file)
@@ -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);