Alex Henrie : winspool: Fix memory leaks on error path in DeviceCapabilitiesA (Coverity).

Alexandre Julliard julliard at winehq.org
Thu Feb 3 16:06:55 CST 2022


Module: wine
Branch: master
Commit: 5a12c6a481c157a299821cb85874819c181081a4
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5a12c6a481c157a299821cb85874819c181081a4

Author: Alex Henrie <alexhenrie24 at 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 at gmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list