summaryrefslogtreecommitdiff
path: root/src/journal-remote
diff options
context:
space:
mode:
authorKlearchos Chaloulos <klearchos.chaloulos@nokia.com>2016-04-22 21:04:17 +0300
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-22 14:04:17 -0400
commit9ba37525d0ef3d144a50ed5fd4710573e92b7ec1 (patch)
treef412d7ce081653cc095be1d9e1df9168c8e3d712 /src/journal-remote
parent47cb7f723a492f9f3e8bd80c1615949a4ec505b3 (diff)
downloadsystemd-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.c2
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;