From af9db76b65b39eed9f21d9fa4c05db4e87bc8044 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Thu, 6 Mar 2008 22:27:35 +0000 Subject: [PATCH] MFi386: revision 1.6 date: 2004/08/21 18:50:34; author: alc; state: Exp; lines: +3 -1 Properly free the temporary sf_buf in uiomove_fromphys() if a copyin or copyout fails. Obtained from: DragonFlyBSD Spotted out by: Mark Tinguely MFC After: 3 days --- sys/arm/arm/uio_machdep.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/arm/arm/uio_machdep.c b/sys/arm/arm/uio_machdep.c index ef6fa428c756..bc52a6e5dc4e 100644 --- a/sys/arm/arm/uio_machdep.c +++ b/sys/arm/arm/uio_machdep.c @@ -100,8 +100,10 @@ uiomove_fromphys(vm_page_t ma[], vm_offset_t offset, int n, struct uio *uio) error = copyout(cp, iov->iov_base, cnt); else error = copyin(iov->iov_base, cp, cnt); - if (error) + if (error) { + sf_buf_free(sf); goto out; + } break; case UIO_SYSSPACE: if (uio->uio_rw == UIO_READ)