diff options
author | Klearchos Chaloulos <klearchos.chaloulos@nokia.com> | 2016-04-22 21:04:17 +0300 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2016-04-22 14:04:17 -0400 |
commit | 9ba37525d0ef3d144a50ed5fd4710573e92b7ec1 (patch) | |
tree | f412d7ce081653cc095be1d9e1df9168c8e3d712 /src/journal-remote | |
parent | 47cb7f723a492f9f3e8bd80c1615949a4ec505b3 (diff) | |
download | systemd-9ba37525d0ef3d144a50ed5fd4710573e92b7ec1.tar.gz |
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.
Diffstat (limited to 'src/journal-remote')
-rw-r--r-- | src/journal-remote/journal-remote-parse.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c index 3864647eb7..9ba9ee3fc0 100644 --- a/src/journal-remote/journal-remote-parse.c +++ b/src/journal-remote/journal-remote-parse.c @@ -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; |