Module Name:    src
Committed By:   christos
Date:           Tue Nov 10 18:04:52 UTC 2015

Modified Files:
        src/usr.sbin/rpcbind: rpcb_svc_com.c

Log Message:
CID 1338514: Check NULL returns


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/usr.sbin/rpcbind/rpcb_svc_com.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.sbin/rpcbind/rpcb_svc_com.c
diff -u src/usr.sbin/rpcbind/rpcb_svc_com.c:1.17 src/usr.sbin/rpcbind/rpcb_svc_com.c:1.18
--- src/usr.sbin/rpcbind/rpcb_svc_com.c:1.17	Sun Nov  8 11:36:28 2015
+++ src/usr.sbin/rpcbind/rpcb_svc_com.c	Tue Nov 10 13:04:51 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rpcb_svc_com.c,v 1.17 2015/11/08 16:36:28 christos Exp $	*/
+/*	$NetBSD: rpcb_svc_com.c,v 1.18 2015/11/10 18:04:51 christos Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -1080,7 +1080,7 @@ my_svc_run(void)
 	struct pollfd *pollfds;
 	int npollfds;
 	int poll_ret, check_ret;
-	int n, m;
+	int n, *m;
 #ifdef SVC_RUN_DEBUG
 	int i;
 #endif
@@ -1095,8 +1095,15 @@ my_svc_run(void)
 			pollfds = realloc(pollfds, npollfds * sizeof(*pollfds));
 		}
 		p = pollfds;
-		m = *svc_fdset_getmax();
-		for (n = 0; n <= m; n++) {
+		if (p == NULL) {
+out:
+			syslog(LOG_ERR, "Cannot allocate pollfds");
+			sleep(1);
+			continue;
+		}
+		if ((m = svc_fdset_getmax()) == NULL)
+			goto out;
+		for (n = 0; n <= *m; n++) {
 			if (svc_fdset_isset(n)) {
 				p->fd = n;
 				p->events = MASKVAL;

Reply via email to