diff options
author | ngie <ngie@FreeBSD.org> | 2016-05-13 09:49:52 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2016-05-13 09:49:52 +0000 |
commit | 4b32d6fd17461cf94aa5beb9217985fd26d6a36b (patch) | |
tree | d74420763fe6e3070d1dbaff14b78d7066a66f77 /lib/libkvm/kvm_amd64.c | |
parent | ca3b4476371a94443d26a1f332dff1d76c0e344d (diff) | |
download | FreeBSD-src-4b32d6fd17461cf94aa5beb9217985fd26d6a36b.zip FreeBSD-src-4b32d6fd17461cf94aa5beb9217985fd26d6a36b.tar.gz |
MFC r298842:
Don't leak PML4 in _amd64_initvtop(..) if kvm_read2(..) fails
CID: 1341474
Diffstat (limited to 'lib/libkvm/kvm_amd64.c')
-rw-r--r-- | lib/libkvm/kvm_amd64.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libkvm/kvm_amd64.c b/lib/libkvm/kvm_amd64.c index 65d697c..b64ea77 100644 --- a/lib/libkvm/kvm_amd64.c +++ b/lib/libkvm/kvm_amd64.c @@ -200,6 +200,7 @@ _kvm_initvtop(kvm_t *kd) PML4 = _kvm_malloc(kd, PAGE_SIZE); if (kvm_read(kd, pa, PML4, PAGE_SIZE) != PAGE_SIZE) { _kvm_err(kd, kd->program, "cannot read KPML4phys"); + free(PML4); return (-1); } kd->vmst->PML4 = PML4; |