summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2016-03-25 01:01:32 +0000
committerpfg <pfg@FreeBSD.org>2016-03-25 01:01:32 +0000
commitc39d1e620dc98f9f26df8e928e2db6c64a25c4e0 (patch)
treea99e7cf7f291ead91707fff9608a770d32ff1933 /sys/kern
parentab79d36b06afce3983bb7a738737c9163fac1a01 (diff)
downloadFreeBSD-src-c39d1e620dc98f9f26df8e928e2db6c64a25c4e0.zip
FreeBSD-src-c39d1e620dc98f9f26df8e928e2db6c64a25c4e0.tar.gz
MFC r297037:
aio_qphysio(): Avoid uninitialized pointer read on error. For the !unmap case it may happen that pbuf gets called unreferenced when vm_fault_quick_hold_pages() fails. Initialize it so it doesn't cause trouble. CID: 1352776 Reviewed by: jhb
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_aio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c
index 8413b25..89b7a00 100644
--- a/sys/kern/vfs_aio.c
+++ b/sys/kern/vfs_aio.c
@@ -1355,7 +1355,8 @@ aio_qphysio(struct proc *p, struct aiocblist *aiocbe)
if (!unmap) {
aiocbe->pbuf = pbuf = (struct buf *)getpbuf(NULL);
BUF_KERNPROC(pbuf);
- }
+ } else
+ pbuf = NULL;
AIO_LOCK(ki);
ki->kaio_count++;
OpenPOWER on IntegriCloud