[PATCH 0/1] MR1587: wineps: Fix memory leaks on error paths in DrvDocumentPropertySheets (cppcheck).
From: Alex Henrie <alexhenrie24(a)gmail.com> --- dlls/wineps.drv/driver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/wineps.drv/driver.c b/dlls/wineps.drv/driver.c index 540d6bed656..ed4db39ce74 100644 --- a/dlls/wineps.drv/driver.c +++ b/dlls/wineps.drv/driver.c @@ -494,7 +494,10 @@ LONG WINAPI DrvDocumentPropertySheets(PROPSHEETUI_INFO *info, LPARAM lparam) di->dlgdm = malloc(sizeof(*di->dlgdm)); if (!di->dlgdm) + { + free(di); return ERR_CPSUI_ALLOCMEM_FAILED; + } memset(&psp, 0, sizeof(psp)); di->pi = pi; @@ -507,7 +510,11 @@ LONG WINAPI DrvDocumentPropertySheets(PROPSHEETUI_INFO *info, LPARAM lparam) psp.lParam = (LPARAM)di; if (!info->pfnComPropSheet(info->hComPropSheet, CPSFUNC_ADD_PROPSHEETPAGEW, (LPARAM)&psp, 0)) + { + free(di->dlgdm); + free(di); return ERR_CPSUI_GETLASTERROR; + } } } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1587
These are not leaks. The memory will be freed in PROPSHEETUI_REASON_DESTROY callback that is called even if PROPSHEETUI_REASON_INIT fails. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1587#note_17833
On Tue Nov 29 14:29:39 2022 +0000, Piotr Caban wrote:
These are not leaks. The memory will be freed in PROPSHEETUI_REASON_DESTROY callback that is called even if PROPSHEETUI_REASON_INIT fails. Ah, that makes sense. Thanks for the clarification.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1587#note_17860
This merge request was closed by Alex Henrie. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1587
participants (3)
-
Alex Henrie -
Alex Henrie (@alexhenrie) -
Piotr Caban (@piotr)