diff options
author | Evgeny Vereshchagin <evvers@ya.ru> | 2018-08-10 12:55:09 +0000 |
---|---|---|
committer | The Plumber <50238977+systemd-rhel-bot@users.noreply.github.com> | 2019-12-03 10:06:23 +0100 |
commit | 3521217c88b364e2c5b10a1e35d3c036b1ecba64 (patch) | |
tree | 08ad1b3aa8dec21a16b61f5091122d14da3294ab | |
parent | 2d197adc6d7109d5901401a90288530582f3f991 (diff) | |
download | systemd-3521217c88b364e2c5b10a1e35d3c036b1ecba64.tar.gz |
journald: take leading spaces into account in syslog_parse_identifier
This is a kind of follow-up to e88baee88fad8bc59d3 which should finally fix
the issue which that commit was supposed to fix.
(cherry picked from commit 937b1171378bc1000a34fcdfe9534d898227e35f)
Resolves: #1764560
-rw-r--r-- | src/journal/journald-syslog.c | 3 | ||||
-rw-r--r-- | src/journal/test-journal-syslog.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/journal/journald-syslog.c b/src/journal/journald-syslog.c index e0b55cc566..ae966763a0 100644 --- a/src/journal/journald-syslog.c +++ b/src/journal/journald-syslog.c @@ -223,8 +223,9 @@ size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid) if (p[e] != '\0' && strchr(WHITESPACE, p[e])) e++; + l = (p - *buf) + e; *buf = p + e; - return e; + return l; } static void syslog_skip_date(char **buf) { diff --git a/src/journal/test-journal-syslog.c b/src/journal/test-journal-syslog.c index 120477cc9f..415b9d23ca 100644 --- a/src/journal/test-journal-syslog.c +++ b/src/journal/test-journal-syslog.c @@ -41,6 +41,8 @@ int main(void) { test_syslog_parse_identifier(" ", NULL, NULL, " ", 0); test_syslog_parse_identifier(":", "", NULL, "", 1); test_syslog_parse_identifier(": ", "", NULL, " ", 2); + test_syslog_parse_identifier(" :", "", NULL, "", 2); + test_syslog_parse_identifier(" pidu:", "pidu", NULL, "", 8); test_syslog_parse_identifier("pidu:", "pidu", NULL, "", 5); test_syslog_parse_identifier("pidu: ", "pidu", NULL, "", 6); test_syslog_parse_identifier("pidu : ", NULL, NULL, "pidu : ", 0); |