about summary refs log tree commit diff
path: root/sunrpc/clnt_tcp.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-05-09 21:50:42 +0000
committerRoland McGrath <roland@gnu.org>1996-05-09 21:50:42 +0000
commitc28fb3c8935a8308d20d08bd45e1fa637a6f69bf (patch)
tree664e7f71b30e69b456fb46fadfa488e65058fa28 /sunrpc/clnt_tcp.c
parent05d4c982198805983d6d7a39b08b1d75eac79387 (diff)
downloadglibc-c28fb3c8935a8308d20d08bd45e1fa637a6f69bf.tar.gz
glibc-c28fb3c8935a8308d20d08bd45e1fa637a6f69bf.tar.xz
glibc-c28fb3c8935a8308d20d08bd45e1fa637a6f69bf.zip
Cleanups in sunrpc code from NIIBE Yutaka <gniibe@mri.co.jp>.
	* sunrpc/clnt_tcp.c (clnttcp_create): Don't close *SOCKP if it's -1.
	* sunrpc/clnt_simp.c (callrpc): Don't close CRP->socket if it's
	RPC_ANYSOCK.
	* sunrpc/pmap_clnt.c (pmap_set): Don't close SOCKET, since
	CLNT_DESTROY already has.
	(pmap_unset): Likewise.
	* sunrpc/pm_getmaps.c (pmap_getmaps): Likewise.
	* sunrpc/pm_getport.c (pmap_getport): Likewise.
	* sunrpc/pmap_rmt.c (pmap_rmtcall): Likewise.
	* sunrpc/portmap.c (callit): Likewise.
Diffstat (limited to 'sunrpc/clnt_tcp.c')
-rw-r--r--sunrpc/clnt_tcp.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
index f6b28b31d7..3b71e119f0 100644
--- a/sunrpc/clnt_tcp.c
+++ b/sunrpc/clnt_tcp.c
@@ -6,23 +6,23 @@
  * may copy or modify Sun RPC without charge, but are not authorized
  * to license or distribute it to anyone else except as part of a product or
  * program developed by the user.
- * 
+ *
  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- * 
+ *
  * Sun RPC is provided with no support and without any obligation on the
  * part of Sun Microsystems, Inc. to assist in its use, correction,
  * modification or enhancement.
- * 
+ *
  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
  * OR ANY PART THEREOF.
- * 
+ *
  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
  * or profits or other special, indirect and consequential damages, even if
  * Sun has been advised of the possibility of such damages.
- * 
+ *
  * Sun Microsystems, Inc.
  * 2550 Garcia Avenue
  * Mountain View, California  94043
@@ -30,7 +30,7 @@
 #if !defined(lint) && defined(SCCSIDS)
 static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro";
 #endif
- 
+
 /*
  * clnt_tcp.c, Implements a TCP/IP based, client side RPC.
  *
@@ -85,7 +85,7 @@ struct ct_data {
 	bool_t		ct_closeit;
 	struct timeval	ct_wait;
 	bool_t          ct_waitset;       /* wait set by clnt_control? */
-	struct sockaddr_in ct_addr; 
+	struct sockaddr_in ct_addr;
 	struct rpc_err	ct_error;
 	char		ct_mcall[MCALL_MSG_SIZE];	/* marshalled callmsg */
 	u_int		ct_mpos;			/* pos after marshal */
@@ -159,7 +159,8 @@ clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
 		    sizeof(*raddr)) < 0)) {
 			rpc_createerr.cf_stat = RPC_SYSTEMERROR;
 			rpc_createerr.cf_error.re_errno = errno;
-			(void)close(*sockp);
+			if (*sockp >= 0)
+			  (void)close(*sockp);
 			goto fooy;
 		}
 		ct->ct_closeit = TRUE;