summaryrefslogtreecommitdiff
path: root/src/journal/journald-syslog.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-10-13 11:31:54 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-10-13 14:40:32 +0200
commite88baee88fad8bc59d33b55a7a2d640ef9e16cd6 (patch)
treea5d0abc0097b7c7d8f04ff55f5bb1458147ca77c /src/journal/journald-syslog.c
parent1b4bb4fdac4dce4e658aa3743153d77c04d1a331 (diff)
journald: properly update message size after stripping the identifier
Valgrind says: ==29176== Conditional jump or move depends on uninitialised value(s) ==29176== at 0x412A85: cunescape_length_with_prefix (util.c:1565) ==29176== by 0x40B351: dev_kmsg_record (journald-kmsg.c:301) ==29176== by 0x40B653: server_read_dev_kmsg (journald-kmsg.c:347) ==29176== by 0x40B701: server_flush_dev_kmsg (journald-kmsg.c:365) ==29176== by 0x409DE7: main (journald.c:1535)
Diffstat (limited to 'src/journal/journald-syslog.c')
-rw-r--r--src/journal/journald-syslog.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/journal/journald-syslog.c b/src/journal/journald-syslog.c
index d3e0f6f6c1..c4f81b68f2 100644
--- a/src/journal/journald-syslog.c
+++ b/src/journal/journald-syslog.c
@@ -185,7 +185,7 @@ int syslog_fixup_facility(int priority) {
return priority;
}
-void syslog_parse_identifier(const char **buf, char **identifier, char **pid) {
+size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid) {
const char *p;
char *t;
size_t l, e;
@@ -201,7 +201,7 @@ void syslog_parse_identifier(const char **buf, char **identifier, char **pid) {
if (l <= 0 ||
p[l-1] != ':')
- return;
+ return 0;
e = l;
l--;
@@ -231,8 +231,9 @@ void syslog_parse_identifier(const char **buf, char **identifier, char **pid) {
if (t)
*identifier = t;
+ e += strspn(p + e, WHITESPACE);
*buf = p + e;
- *buf += strspn(*buf, WHITESPACE);
+ return e;
}
void syslog_parse_priority(char **p, int *priority) {