journal-remote : Ensure reallocation of source->buf does not result in source->size < source->filled (#3086)

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.
This commit is contained in:
Klearchos Chaloulos
2016-04-22 14:04:17 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 47cb7f723a
commit 9ba37525d0
+1 -1
View 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;