summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTon Voon <tonvoon@users.sourceforge.net>2006-02-17 09:08:08 (GMT)
committerTon Voon <tonvoon@users.sourceforge.net>2006-02-17 09:08:08 (GMT)
commit4a7401ea71fc7735be5fe371eb155284eb3a9583 (patch)
treed3dfad3a53c749df0841df2bca88f9bfd1f52e51
parent91bd5cfc686b1430fc603f1d8d18fab77514b04f (diff)
downloadmonitoring-plugins-4a7401ea71fc7735be5fe371eb155284eb3a9583.tar.gz
SIGALRM could be received before child_process is created (Jason Crawford)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1317 f882894a-f735-0410-b71e-b25c423dba1c
-rw-r--r--THANKS.in1
-rw-r--r--plugins/popen.c14
2 files changed, 10 insertions, 5 deletions
diff --git a/THANKS.in b/THANKS.in
index 9fee025..3aff4bf 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -174,3 +174,4 @@ Rick Frey
174Serhan Kiymaz 174Serhan Kiymaz
175Gerhard Lausser 175Gerhard Lausser
176Jon Vandegrift 176Jon Vandegrift
177Jason Crawford
diff --git a/plugins/popen.c b/plugins/popen.c
index f681069..5da12a0 100644
--- a/plugins/popen.c
+++ b/plugins/popen.c
@@ -270,12 +270,16 @@ popen_timeout_alarm_handler (int signo)
270{ 270{
271 int fh; 271 int fh;
272 if (signo == SIGALRM) { 272 if (signo == SIGALRM) {
273 fh=fileno (child_process); 273 if (child_process != NULL) {
274 if(fh >= 0){ 274 fh=fileno (child_process);
275 kill (childpid[fh], SIGKILL); 275 if(fh >= 0){
276 } 276 kill (childpid[fh], SIGKILL);
277 printf (_("CRITICAL - Plugin timed out after %d seconds\n"), 277 }
278 printf (_("CRITICAL - Plugin timed out after %d seconds\n"),
278 timeout_interval); 279 timeout_interval);
280 } else {
281 printf (_("CRITICAL - popen timeout received, but no child process\n"));
282 }
279 exit (STATE_CRITICAL); 283 exit (STATE_CRITICAL);
280 } 284 }
281} 285}