Module Name: src Committed By: christos Date: Sat Nov 7 16:58:24 UTC 2015
Modified Files: src/include/rpc: svc.h src/lib/libc/rpc: svc_fdset.c Log Message: Put back NULL tests for allocation failures. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/include/rpc/svc.h cvs rdiff -u -r1.6 -r1.7 src/lib/libc/rpc/svc_fdset.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/include/rpc/svc.h diff -u src/include/rpc/svc.h:1.27 src/include/rpc/svc.h:1.28 --- src/include/rpc/svc.h:1.27 Fri Nov 6 14:42:57 2015 +++ src/include/rpc/svc.h Sat Nov 7 11:58:24 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svc.h,v 1.27 2015/11/06 19:42:57 christos Exp $ */ +/* $NetBSD: svc.h,v 1.28 2015/11/07 16:58:24 christos Exp $ */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for @@ -316,8 +316,8 @@ extern fd_set *svc_fdset_copy(const fd_ extern void svc_fdset_zero(void); extern int svc_fdset_isset(int); -extern void svc_fdset_clr(int); -extern void svc_fdset_set(int); +extern int svc_fdset_clr(int); +extern int svc_fdset_set(int); extern fd_set *svc_fdset_get(void); extern int svc_fdset_getsize(int); Index: src/lib/libc/rpc/svc_fdset.c diff -u src/lib/libc/rpc/svc_fdset.c:1.6 src/lib/libc/rpc/svc_fdset.c:1.7 --- src/lib/libc/rpc/svc_fdset.c:1.6 Fri Nov 6 22:06:32 2015 +++ src/lib/libc/rpc/svc_fdset.c Sat Nov 7 11:58:24 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svc_fdset.c,v 1.6 2015/11/07 03:06:32 christos Exp $ */ +/* $NetBSD: svc_fdset.c,v 1.7 2015/11/07 16:58:24 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: svc_fdset.c,v 1.6 2015/11/07 03:06:32 christos Exp $"); +__RCSID("$NetBSD: svc_fdset.c,v 1.7 2015/11/07 16:58:24 christos Exp $"); #include "reentrant.h" @@ -219,11 +219,14 @@ svc_fdset_zero(void) fds->fdmax = -1; } -void +int svc_fdset_set(int fd) { struct svc_fdset *fds = svc_fdset_alloc(fd); + if (fds == NULL) + return -1; + FD_SET(fd, fds->fdset); if (fd > fds->fdmax) fds->fdmax = fd; @@ -231,6 +234,7 @@ svc_fdset_set(int fd) DPRINTF_FDSET(fds, "%d", fd); svc_fdset_sanitize(fds); + return 0; } int @@ -238,20 +242,27 @@ svc_fdset_isset(int fd) { struct svc_fdset *fds = svc_fdset_alloc(fd); + if (fds == NULL) + return -1; + DPRINTF_FDSET(fds, "%d", fd); - return FD_ISSET(fd, fds->fdset); + return FD_ISSET(fd, fds->fdset) != 0; } -void +int svc_fdset_clr(int fd) { struct svc_fdset *fds = svc_fdset_alloc(fd); + if (fds == NULL) + return -1; + FD_CLR(fd, fds->fdset); DPRINTF_FDSET(fds, "%d", fd); svc_fdset_sanitize(fds); + return 0; } fd_set * @@ -271,6 +282,9 @@ svc_fdset_get(void) { struct svc_fdset *fds = svc_fdset_alloc(0); + if (fds == NULL) + return NULL; + DPRINTF_FDSET(fds, "get"); svc_fdset_sanitize(fds); return fds->fdset; @@ -281,6 +295,9 @@ svc_fdset_getmax(void) { struct svc_fdset *fds = svc_fdset_alloc(0); + if (fds == NULL) + return NULL; + DPRINTF_FDSET(fds, "getmax"); svc_fdset_sanitize(fds); return &fds->fdmax; @@ -291,6 +308,9 @@ svc_fdset_getsize(int fd) { struct svc_fdset *fds = svc_fdset_alloc(fd); + if (fds == NULL) + return -1; + DPRINTF_FDSET(fds, "getsize"); return fds->fdsize; }