From 2333d112fb78d83f8c73a9eac8982dde5cbe4746 Mon Sep 17 00:00:00 2001 From: Thomas Moestl Date: Fri, 8 Feb 2002 20:19:44 +0000 Subject: [PATCH] Fix a bug introduced in r. 1.28: when copy{in,out} would fail for an iovec that was not the last one in the uio, the error would be ignored silently. Bug found and fix proposed by: jhb --- sys/kern/kern_subr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_subr.c b/sys/kern/kern_subr.c index 94491929e96f..250077c7d311 100644 --- a/sys/kern/kern_subr.c +++ b/sys/kern/kern_subr.c @@ -104,7 +104,7 @@ uiomove(cp, n, uio) else error = copyin(iov->iov_base, cp, cnt); if (error) - break; + goto out; break; case UIO_SYSSPACE: @@ -123,6 +123,7 @@ uiomove(cp, n, uio) cp += cnt; n -= cnt; } +out: if (td != curthread) printf("uiomove: IT CHANGED!"); td = curthread; /* Might things have changed in copyin/copyout? */ if (td) {