You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/monit/files/monit-fix-unmonitor.patch

28 lines
1.2 KiB

From a737d3e3bac5bd0378f645eb675a7e4c248e2216 Mon Sep 17 00:00:00 2001
From: tildeslash <info@tildeslash.com>
Date: Tue, 27 Oct 2020 19:53:56 +0100
Subject: [PATCH] Fixed: Issue #931: The "if oes exist" file test with
unmonitor or stop action didn't work properly.
---
CHANGES | 9 +++++++--
configure.ac | 2 +-
src/validate.c | 3 +++
system/packages/redhat/monit.spec | 5 ++++-
4 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/validate.c b/src/validate.c
index 2bf818a..36aa7ef 100644
--- a/src/validate.c
+++ b/src/validate.c
@@ -1686,6 +1686,9 @@ State_Type check_file(Service_T s) {
Event_post(s, Event_Exist, State_Failed, l->action, "file exists");
}
}
+ // Double-check the monitoring state: the "if does exist" may call unmonitor/stop, which resets the service object
+ if (s->monitor == Monitor_Not)
+ return rv;
if (! S_ISREG(s->inf.file->mode) && ! S_ISSOCK(s->inf.file->mode)) {
Event_post(s, Event_Invalid, State_Failed, s->action_INVALID, "is neither a regular file nor a socket");
return State_Failed;