]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
msgfilter: Fix read buffer allocation for empty input
authorDaiki Ueno <ueno@gnu.org>
Fri, 28 Nov 2014 04:21:37 +0000 (13:21 +0900)
committerDaiki Ueno <ueno@gnu.org>
Fri, 28 Nov 2014 04:21:37 +0000 (13:21 +0900)
* msgfilter.c (prepare_read): Increase allocated buffer size even
if the original size is < 2.
Reported by Robin McCorkell at:
<https://savannah.gnu.org/bugs/?43720>.

gettext-tools/src/ChangeLog
gettext-tools/src/msgfilter.c

index d20a4ff2a0e7a1d02e7559c71e08dd84a783e06d..1fdff820effdb2e7a8b899472c3a087f178484fc 100644 (file)
@@ -1,3 +1,11 @@
+2014-11-28  Daiki Ueno  <ueno@gnu.org>
+
+       msgfilter: Fix read buffer allocation for empty input
+       * msgfilter.c (prepare_read): Increase allocated buffer size even
+       if the original size is < 2.
+       Reported by Robin McCorkell at:
+       <https://savannah.gnu.org/bugs/?43720>.
+
 2014-11-27  Daiki Ueno  <ueno@gnu.org>
 
        javascript: Simplify Unicode character escape handling
index fdfb423083043ff4643c5bd6e5cd599413a14b3b..5daced43e0c2c4c75b81785e8dd55e5500d6fadb 100644 (file)
@@ -554,7 +554,8 @@ prepare_read (size_t *num_bytes_p, void *private_data)
 
   if (l->length == l->allocated)
     {
-      l->allocated = l->allocated + (l->allocated >> 1);
+      l->allocated = l->allocated
+        + (l->allocated < 2 ? 1 : (l->allocated >> 1));
       l->result = (char *) xrealloc (l->result, l->allocated);
     }
   *num_bytes_p = l->allocated - l->length;