Module Name:    src
Committed By:   christos
Date:           Fri Feb  4 17:38:15 UTC 2011

Modified Files:
        src/lib/libc/rpc: svc_vc.c

Log Message:
PR/44514: Andrey Simonenko: Buffer underflow in RPC library for non-blocking
TCP sockets


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/lib/libc/rpc/svc_vc.c

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

Modified files:

Index: src/lib/libc/rpc/svc_vc.c
diff -u src/lib/libc/rpc/svc_vc.c:1.23 src/lib/libc/rpc/svc_vc.c:1.24
--- src/lib/libc/rpc/svc_vc.c:1.23	Fri Feb  4 12:36:54 2011
+++ src/lib/libc/rpc/svc_vc.c	Fri Feb  4 12:38:15 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: svc_vc.c,v 1.23 2011/02/04 17:36:54 christos Exp $	*/
+/*	$NetBSD: svc_vc.c,v 1.24 2011/02/04 17:38:15 christos Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -35,7 +35,7 @@
 static char *sccsid = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
 static char *sccsid = "@(#)svc_tcp.c	2.2 88/08/01 4.0 RPCSRC";
 #else
-__RCSID("$NetBSD: svc_vc.c,v 1.23 2011/02/04 17:36:54 christos Exp $");
+__RCSID("$NetBSD: svc_vc.c,v 1.24 2011/02/04 17:38:15 christos Exp $");
 #endif
 #endif
 
@@ -583,7 +583,7 @@
 				cd->strm_stat = XPRT_DIED;
 				return -1;
 			}
-			if (cd->nonblock && i != cnt) {
+			if (cd->nonblock) {
 				/*
 				 * For non-blocking connections, do not
 				 * take more than 2 seconds writing the
@@ -597,6 +597,7 @@
 					return -1;
 				}
 			}
+			i = 0;
 		}
 	}
 	return len;

Reply via email to