Pierre Schweitzer : msacm32: Fix buffer double free.
Alexandre Julliard
julliard at winehq.org
Wed Dec 7 13:57:13 CST 2011
Module: wine
Branch: master
Commit: 1ac7096728dbb46a56f84fa0d25fdc3cc5282519
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1ac7096728dbb46a56f84fa0d25fdc3cc5282519
Author: Pierre Schweitzer <pierre at reactos.org>
Date: Tue Dec 6 21:52:51 2011 +0100
msacm32: Fix buffer double free.
---
dlls/msacm32/internal.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/msacm32/internal.c b/dlls/msacm32/internal.c
index 239f4d3..b3f6bf3 100644
--- a/dlls/msacm32/internal.c
+++ b/dlls/msacm32/internal.c
@@ -1016,6 +1016,9 @@ PWINE_ACMLOCALDRIVERINST MSACM_OpenLocalDriver(PWINE_ACMLOCALDRIVER paldrv, LPAR
PWINE_ACMLOCALDRIVERINST pDrvInst;
pDrvInst = HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMLOCALDRIVERINST));
+ if (!pDrvInst)
+ return NULL;
+
pDrvInst->pLocalDriver = paldrv;
pDrvInst->dwDriverID = 0;
pDrvInst->pNextACMInst = NULL;
@@ -1037,9 +1040,14 @@ PWINE_ACMLOCALDRIVERINST MSACM_OpenLocalDriver(PWINE_ACMLOCALDRIVER paldrv, LPAR
ret = MSACM_OpenLocalDriver(paldrv, lParam2);
if (!ret)
{
- MSACM_CloseLocalDriver(pDrvInst);
ERR("load1 failed\n");
- goto exit;
+ /* If MSACM_CloseLocalDriver returns TRUE,
+ * then pDrvInst has been freed
+ */
+ if (!MSACM_CloseLocalDriver(pDrvInst))
+ goto exit;
+
+ return NULL;
}
pDrvInst->bSession = TRUE;
return ret;
More information about the wine-cvs
mailing list