journal-remote : Ensure reallocation of source->buf does not result in source->size...
authorKlearchos Chaloulos <klearchos.chaloulos@nokia.com>
Fri, 22 Apr 2016 18:04:17 +0000 (21:04 +0300)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 22 Apr 2016 18:04:17 +0000 (14:04 -0400)
While the function journal-remote-parse.c:get_line() enforces an assertion that source->filled <= source->size, in function journal-remote-parse.c:process_source() there is a chance that source->size will be decreased to a lower value than source->filled, when source->buf is reallocated. Therefore a check is added that ensures that source->buf is reallocated only when source->filled is smaller than target / 2.

src/journal-remote/journal-remote-parse.c

index 3864647..9ba9ee3 100644 (file)
@@ -485,7 +485,7 @@ int process_source(RemoteSource *source, bool compress, bool seal) {
         }
 
         target = source->size;
-        while (target > 16 * LINE_CHUNK && remain < target / 2)
+        while (target > 16 * LINE_CHUNK && source->filled < target / 2)
                 target /= 2;
         if (target < source->size) {
                 char *tmp;