mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-09-07 06:03:51 +00:00
core/service: check if mainpid matches only if it is set
https://bugzilla.redhat.com/show_bug.cgi?id=1047304
This commit is contained in:
+4
-3
@@ -3343,6 +3343,9 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
|
||||
|
||||
assert(u);
|
||||
|
||||
log_debug_unit(u->id, "%s: Got notification message from PID %lu (%s...)",
|
||||
u->id, (unsigned long) pid, tags && *tags ? tags[0] : "(empty)");
|
||||
|
||||
if (s->notify_access == NOTIFY_NONE) {
|
||||
log_warning_unit(u->id,
|
||||
"%s: Got notification message from PID %lu, but reception is disabled.",
|
||||
@@ -3350,15 +3353,13 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (s->notify_access == NOTIFY_MAIN && pid != s->main_pid) {
|
||||
if (s->notify_access == NOTIFY_MAIN && s->main_pid != 0 && pid != s->main_pid) {
|
||||
log_warning_unit(u->id,
|
||||
"%s: Got notification message from PID %lu, but reception only permitted for PID %lu",
|
||||
u->id, (unsigned long) pid, (unsigned long) s->main_pid);
|
||||
return;
|
||||
}
|
||||
|
||||
log_debug_unit(u->id, "%s: Got message", u->id);
|
||||
|
||||
/* Interpret MAINPID= */
|
||||
if ((e = strv_find_prefix(tags, "MAINPID=")) &&
|
||||
(s->state == SERVICE_START ||
|
||||
|
||||
Reference in New Issue
Block a user