Date: Mon, 21 Aug 2017 21:18:51 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r448501 - in branches/2017Q3/emulators/open-vm-tools: . files Message-ID: <201708212118.v7LLIpH0015541@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhb (src,doc committer) Date: Mon Aug 21 21:18:51 2017 New Revision: 448501 URL: https://svnweb.freebsd.org/changeset/ports/448501 Log: MFH: r448159 Don't leak lock from os_kmem_alloc(). The current port patches for os_kmem_alloc() add VM object locking. However, the lock is not unlocked in the success case because the unlock code is inside of an if body instead of after the if statement. Approved by: ports-secteam (feld) Modified: branches/2017Q3/emulators/open-vm-tools/Makefile branches/2017Q3/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c Directory Properties: branches/2017Q3/ (props changed) Modified: branches/2017Q3/emulators/open-vm-tools/Makefile ============================================================================== --- branches/2017Q3/emulators/open-vm-tools/Makefile Mon Aug 21 21:12:26 2017 (r448500) +++ branches/2017Q3/emulators/open-vm-tools/Makefile Mon Aug 21 21:18:51 2017 (r448501) @@ -4,6 +4,7 @@ PORTNAME= open-vm-tools PORTVERSION= ${RELEASE_VER} PORTEPOCH= 2 +PORTREVISION= 1 CATEGORIES= emulators MAINTAINER= swills@FreeBSD.org Modified: branches/2017Q3/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c ============================================================================== --- branches/2017Q3/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c Mon Aug 21 21:12:26 2017 (r448500) +++ branches/2017Q3/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c Mon Aug 21 21:18:51 2017 (r448501) @@ -1,5 +1,5 @@ ---- modules/freebsd/vmmemctl/os.c.orig 2017-02-24 22:15:37 UTC -+++ modules/freebsd/vmmemctl/os.c +--- modules/freebsd/vmmemctl/os.c.orig 2017-02-24 14:15:37.000000000 -0800 ++++ modules/freebsd/vmmemctl/os.c 2017-08-15 13:54:03.813152000 -0700 @@ -37,9 +37,11 @@ #include <sys/param.h> #include <sys/systm.h> @@ -50,13 +50,10 @@ - if ( !vm_page_lookup(state->vmobject, page->pindex) ) { - return; -- } +// if ( !vm_page_lookup(state->vmobject, page->pindex) ) { +// return; +// } - -- os_pmap_putindex(pmap, page->pindex); -- vm_page_free(page); ++ +// os_pmap_putindex(pmap, page->pindex); +// vm_page_free(page); +#if __FreeBSD_version > 1000029 @@ -77,7 +74,10 @@ +#else + vm_page_unlock_queues(); +#endif -+ } + } +- +- os_pmap_putindex(pmap, page->pindex); +- vm_page_free(page); +#if __FreeBSD_version > 1000029 + VM_OBJECT_WUNLOCK(state->vmobject); +#else @@ -106,18 +106,18 @@ return NULL; } -@@ -504,6 +550,11 @@ os_kmem_alloc(int alloc_normal_failed) / - +@@ -505,6 +551,11 @@ os_kmem_alloc(int alloc_normal_failed) / if (!page) { os_pmap_putindex(pmap, pindex); + } +#if __FreeBSD_version > 1000029 + VM_OBJECT_WUNLOCK(state->vmobject); +#else + VM_OBJECT_UNLOCK(state->vmobject); +#endif - } return page; + } @@ -847,7 +898,7 @@ vmmemctl_sysctl(SYSCTL_HANDLER_ARGS) static void vmmemctl_init_sysctl(void)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708212118.v7LLIpH0015541>