journal-remote: set a limit on the number of fields in a message
Existing use of E2BIG is replaced with ENOBUFS (entry too long), and E2BIG is reused for the new error condition (too many fields). This matches the change done for systemd-journald, hence forming the second part of the fix for CVE-2018-16865 (https://bugzilla.redhat.com/show_bug.cgi?id=1653861).
This commit is contained in:
@@ -23,6 +23,9 @@ enum {
|
||||
};
|
||||
|
||||
static int iovw_put(struct iovec_wrapper *iovw, void* data, size_t len) {
|
||||
if (iovw->count >= ENTRY_FIELD_COUNT_MAX)
|
||||
return -E2BIG;
|
||||
|
||||
if (!GREEDY_REALLOC(iovw->iovec, iovw->size_bytes, iovw->count + 1))
|
||||
return log_oom();
|
||||
|
||||
@@ -97,7 +100,7 @@ static int get_line(JournalImporter *imp, char **line, size_t *size) {
|
||||
|
||||
imp->scanned = imp->filled;
|
||||
if (imp->scanned >= DATA_SIZE_MAX)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(E2BIG),
|
||||
return log_error_errno(SYNTHETIC_ERRNO(ENOBUFS),
|
||||
"Entry is bigger than %u bytes.",
|
||||
DATA_SIZE_MAX);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user