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;