Просмотр исходного кода

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
Ton Voon 20 лет назад
Родитель
Сommit
4a7401ea71
2 измененных файлов с 10 добавлено и 5 удалено
  1. 1 0
      THANKS.in
  2. 9 5
      plugins/popen.c

+ 1 - 0
THANKS.in

@@ -174,3 +174,4 @@ Rick Frey
 Serhan Kiymaz
 Gerhard Lausser
 Jon Vandegrift
+Jason Crawford

+ 9 - 5
plugins/popen.c

@@ -270,12 +270,16 @@ popen_timeout_alarm_handler (int signo)
 {
 	int fh;
 	if (signo == SIGALRM) {
-		fh=fileno (child_process);
-		if(fh >= 0){
-			kill (childpid[fh], SIGKILL);
-		}
-		printf (_("CRITICAL - Plugin timed out after %d seconds\n"),
+		if (child_process != NULL) {
+			fh=fileno (child_process);
+			if(fh >= 0){
+				kill (childpid[fh], SIGKILL);
+			}
+			printf (_("CRITICAL - Plugin timed out after %d seconds\n"),
 						timeout_interval);
+		} else {
+			printf (_("CRITICAL - popen timeout received, but no child process\n"));
+		}
 		exit (STATE_CRITICAL);
 	}
 }