From 6b8c895a6828d55f841ea9a74b0c03a291057770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Fri, 11 Jul 2025 20:10:45 +0200 Subject: [PATCH] container: fix memory leaks (#2129) --- internal/headers/hcn/syscall.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/headers/hcn/syscall.go b/internal/headers/hcn/syscall.go index 4d2f1453..7a38c73b 100644 --- a/internal/headers/hcn/syscall.go +++ b/internal/headers/hcn/syscall.go @@ -52,8 +52,9 @@ func EnumerateEndpoints() ([]ole.GUID, error) { uintptr(unsafe.Pointer(&errorRecord)), ) - windows.CoTaskMemFree(unsafe.Pointer(errorRecord)) result := windows.UTF16PtrToString(endpointsJSON) + windows.CoTaskMemFree(unsafe.Pointer(endpointsJSON)) + windows.CoTaskMemFree(unsafe.Pointer(errorRecord)) if r1 != 0 { return nil, fmt.Errorf("HcnEnumerateEndpoints failed: HRESULT 0x%X: %w", r1, hcs.Win32FromHResult(r1)) @@ -62,7 +63,7 @@ func EnumerateEndpoints() ([]ole.GUID, error) { var endpoints []ole.GUID if err := json.Unmarshal([]byte(result), &endpoints); err != nil { - return nil, fmt.Errorf("failed to unmarshal JSON: %w", err) + return nil, fmt.Errorf("failed to unmarshal JSON %s: %w", result, err) } return endpoints, nil @@ -108,10 +109,9 @@ func QueryEndpointProperties(endpoint Endpoint, propertyQuery *uint16) (Endpoint uintptr(unsafe.Pointer(&errorRecord)), ) - windows.CoTaskMemFree(unsafe.Pointer(errorRecord)) - result := windows.UTF16PtrToString(resultDocument) windows.CoTaskMemFree(unsafe.Pointer(resultDocument)) + windows.CoTaskMemFree(unsafe.Pointer(errorRecord)) if r1 != 0 { return EndpointProperties{}, fmt.Errorf("HcsGetComputeSystemProperties failed: HRESULT 0x%X: %w", r1, hcs.Win32FromHResult(r1))