diff options
author | pfg <pfg@FreeBSD.org> | 2016-03-25 01:01:32 +0000 |
---|---|---|
committer | pfg <pfg@FreeBSD.org> | 2016-03-25 01:01:32 +0000 |
commit | c39d1e620dc98f9f26df8e928e2db6c64a25c4e0 (patch) | |
tree | a99e7cf7f291ead91707fff9608a770d32ff1933 /sys/kern | |
parent | ab79d36b06afce3983bb7a738737c9163fac1a01 (diff) | |
download | FreeBSD-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.c | 3 |
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++; |