Module Name:    src
Committed By:   sjg
Date:           Wed Jan 22 21:04:29 UTC 2020

Modified Files:
        src/usr.bin/make: meta.c

Log Message:
Check for filemon valid.

If meta_needed() returns FALSE, mfp and filemon will be NULL
in which case we should not call filemon_*().


To generate a diff of this commit:
cvs rdiff -u -r1.76 -r1.77 src/usr.bin/make/meta.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/meta.c
diff -u src/usr.bin/make/meta.c:1.76 src/usr.bin/make/meta.c:1.77
--- src/usr.bin/make/meta.c:1.76	Wed Jan 22 00:26:45 2020
+++ src/usr.bin/make/meta.c	Wed Jan 22 21:04:29 2020
@@ -1,4 +1,4 @@
-/*      $NetBSD: meta.c,v 1.76 2020/01/22 00:26:45 sjg Exp $ */
+/*      $NetBSD: meta.c,v 1.77 2020/01/22 21:04:29 sjg Exp $ */
 
 /*
  * Implement 'meta' mode.
@@ -124,7 +124,7 @@ meta_open_filemon(BuildMon *pbm)
 
     pbm->mon_fd = -1;
     pbm->filemon = NULL;
-    if (!useFilemon)
+    if (!useFilemon || !pbm->mfp)
 	return;
 
     pbm->filemon = filemon_open();
@@ -701,7 +701,7 @@ meta_job_child(Job *job)
     }
     if (pbm->mfp != NULL) {
 	close(fileno(pbm->mfp));
-	if (useFilemon) {
+	if (useFilemon && pbm->filemon) {
 	    pid_t pid;
 
 	    pid = getpid();
@@ -724,7 +724,7 @@ meta_job_parent(Job *job, pid_t pid)
     } else {
 	pbm = &Mybm;
     }
-    if (useFilemon) {
+    if (useFilemon && pbm->filemon) {
 	filemon_setpid_parent(pbm->filemon, pid);
     }
 #endif
@@ -1686,6 +1686,8 @@ meta_compat_parent(pid_t child)
     meta_job_parent(NULL, child);
     close(childPipe[1]);			/* child side */
     outfd = childPipe[0];
+    if (!Mybm.filemon)				/* no meta  */
+	    return;
     metafd = filemon_readfd(Mybm.filemon);
 
     maxfd = -1;

Reply via email to