aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/uipc_socket.c
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1996-11-29 19:03:42 +0000
committerDavid Greenman <dg@FreeBSD.org>1996-11-29 19:03:42 +0000
commitadd2e5d0f4d41922e29968a2ae5ba613c465ad26 (patch)
tree1a9aca1a3bf236d74e79328a583d713d75a11efb /sys/kern/uipc_socket.c
parente6eeb36dafb53bf7342ca79b8fc7e41cea6af716 (diff)
downloadsrc-add2e5d0f4d41922e29968a2ae5ba613c465ad26.tar.gz
src-add2e5d0f4d41922e29968a2ae5ba613c465ad26.zip
Check for error return from uiomove to prevent looping endlessly in
soreceive(). Closes PR#2114. Submitted by: wpaul
Notes
Notes: svn path=/head/; revision=20030
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r--sys/kern/uipc_socket.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index da9e33146408..d359d5deb4ad 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)uipc_socket.c 8.3 (Berkeley) 4/15/94
- * $Id: uipc_socket.c,v 1.19 1996/07/11 16:31:56 wollman Exp $
+ * $Id: uipc_socket.c,v 1.20 1996/10/07 04:32:26 pst Exp $
*/
#include <sys/param.h>
@@ -708,6 +708,8 @@ dontblock:
splx(s);
error = uiomove(mtod(m, caddr_t) + moff, (int)len, uio);
s = splnet();
+ if (error)
+ goto release;
} else
uio->uio_resid -= len;
if (len == m->m_len - moff) {