journal-gatewayd: fix segfault with certain request (#3893)

When client requests to get logs with `follow` and `KEY=match` that
doesn't match any log entry, journal-gatewayd segfaulted.

Make request_reader_entries to return zero in such case to wait for
matching entries.

This fixes https://github.com/systemd/systemd/issues/3873.
This commit is contained in:
Yi EungJun 2016-08-07 05:39:13 +09:00 committed by Zbigniew Jędrzejewski-Szmek
parent 1aa1e59c7f
commit 3475fc5899
1 changed files with 3 additions and 0 deletions

View File

@ -240,6 +240,9 @@ static ssize_t request_reader_entries(
m->size = (uint64_t) sz;
}
if (m->tmp == NULL && m->follow)
return 0;
if (fseeko(m->tmp, pos, SEEK_SET) < 0) {
log_error_errno(errno, "Failed to seek to position: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;