[Midnightbsd-cvs] src [8305] trunk/sys/kern/kern_sig.c: correct return value

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Sep 17 18:26:48 EDT 2016


Revision: 8305
          http://svnweb.midnightbsd.org/src/?rev=8305
Author:   laffer1
Date:     2016-09-17 18:26:48 -0400 (Sat, 17 Sep 2016)
Log Message:
-----------
correct return value

Modified Paths:
--------------
    trunk/sys/kern/kern_sig.c

Modified: trunk/sys/kern/kern_sig.c
===================================================================
--- trunk/sys/kern/kern_sig.c	2016-09-17 22:25:40 UTC (rev 8304)
+++ trunk/sys/kern/kern_sig.c	2016-09-17 22:26:48 UTC (rev 8305)
@@ -1599,8 +1599,10 @@
 {
 	struct proc *p;
 	struct pgrp *pgrp;
-	int nfound = 0;
+	int err;
+	int ret;
 
+	ret = ESRCH;
 	if (all) {
 		/*
 		 * broadcast
@@ -1613,11 +1615,14 @@
 				PROC_UNLOCK(p);
 				continue;
 			}
-			if (p_cansignal(td, p, sig) == 0) {
-				nfound++;
+			err = p_cansignal(td, p, sig);
+			if (err == 0) {
 				if (sig)
 					pksignal(p, sig, ksi);
+				ret = err;
 			}
+			else if (ret == ESRCH)
+				ret = err;
 			PROC_UNLOCK(p);
 		}
 		sx_sunlock(&allproc_lock);
@@ -1644,16 +1649,19 @@
 				PROC_UNLOCK(p);
 				continue;
 			}
-			if (p_cansignal(td, p, sig) == 0) {
-				nfound++;
+			err = p_cansignal(td, p, sig);
+			if (err == 0) {
 				if (sig)
 					pksignal(p, sig, ksi);
+				ret = err;
 			}
+			else if (ret == ESRCH)
+				ret = err;
 			PROC_UNLOCK(p);
 		}
 		PGRP_UNLOCK(pgrp);
 	}
-	return (nfound ? 0 : ESRCH);
+	return (ret);
 }
 
 #ifndef _SYS_SYSPROTO_H_



More information about the Midnightbsd-cvs mailing list