Module: wine Branch: stable Commit: 542d9a925d66caff063fc28ee83747f519f8b5bb URL: https://gitlab.winehq.org/wine/wine/-/commit/542d9a925d66caff063fc28ee83747f...
Author: Alex Henrie alexhenrie24@gmail.com Date: Wed Feb 2 21:35:01 2022 -0700
winspool: Fix memory leaks on error path in DeviceCapabilitiesA (Coverity).
Signed-off-by: Alex Henrie alexhenrie24@gmail.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 5a12c6a481c157a299821cb85874819c181081a4) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/winspool.drv/info.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 971eb654e6a..52edd362622 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -1775,7 +1775,7 @@ INT WINAPI DeviceCapabilitiesA(const char *device, const char *portA, WORD cap, WCHAR *outputW;
ret = DeviceCapabilitiesW(device_name, port, cap, NULL, devmode); - if (ret == -1) return ret; + if (ret == -1) goto cleanup;
switch (cap) { case DC_BINNAMES: @@ -1795,6 +1795,7 @@ INT WINAPI DeviceCapabilitiesA(const char *device, const char *portA, WORD cap, } else { ret = DeviceCapabilitiesW(device_name, port, cap, (WCHAR *)output, devmode); } +cleanup: HeapFree(GetProcessHeap(), 0, device_name); HeapFree(GetProcessHeap(), 0, devmode); HeapFree(GetProcessHeap(), 0, port);