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.
28 lines
1.2 KiB
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;
|