chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Assume that /proc/meminfo can be missing
[elogind.git]
/
src
/
journal
/
journald-syslog.c
diff --git
a/src/journal/journald-syslog.c
b/src/journal/journald-syslog.c
index 7cbb34608b3579f3cf3ca2f490aaff92d5831186..c2770a53d0caf8791c4604cec44c7ad8cd1aa8f6 100644
(file)
--- a/
src/journal/journald-syslog.c
+++ b/
src/journal/journald-syslog.c
@@
-236,7
+236,7
@@
size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid)
return e;
}
return e;
}
-void syslog_parse_priority(char **p, int *priority) {
+void syslog_parse_priority(char **p, int *priority
, bool with_facility
) {
int a = 0, b = 0, c = 0;
int k;
int a = 0, b = 0, c = 0;
int k;
@@
-265,10
+265,14
@@
void syslog_parse_priority(char **p, int *priority) {
} else
return;
} else
return;
- if (a < 0 || b < 0 || c < 0)
+ if (a < 0 || b < 0 || c < 0 ||
+ (!with_facility && (a || b || c > 7)))
return;
return;
- *priority = (*priority & LOG_FACMASK) | (a*100 + b*10 + c);
+ if (with_facility)
+ *priority = a*100 + b*10 + c;
+ else
+ *priority = (*priority & LOG_FACMASK) | c;
*p += k;
}
*p += k;
}
@@
-361,7
+365,7
@@
void server_process_syslog_message(
assert(buf);
orig = buf;
assert(buf);
orig = buf;
- syslog_parse_priority((char**) &buf, &priority);
+ syslog_parse_priority((char**) &buf, &priority
, true
);
if (s->forward_to_syslog)
forward_syslog_raw(s, priority, orig, ucred, tv);
if (s->forward_to_syslog)
forward_syslog_raw(s, priority, orig, ucred, tv);