From d82a7b9db985257c2e03939ccc086537ffaaaaed Mon Sep 17 00:00:00 2001 From: Maksim An Date: Tue, 24 Jun 2025 14:36:11 -0700 Subject: [PATCH] fix: close handle when DeviceIoControl fails Update hvsocketaddr utility to exit on error. Signed-off-by: Maksim An --- internal/hvsocket/hvsocket.go | 4 ++++ internal/tools/hvsocketaddr/main.go | 1 + 2 files changed, 5 insertions(+) diff --git a/internal/hvsocket/hvsocket.go b/internal/hvsocket/hvsocket.go index cf3ecb10f9..595834f7c1 100644 --- a/internal/hvsocket/hvsocket.go +++ b/internal/hvsocket/hvsocket.go @@ -6,6 +6,7 @@ package hvsocket import ( "context" "fmt" + "github.com/Microsoft/hcsshim/internal/log" "unsafe" "github.com/Microsoft/go-winio/pkg/guid" @@ -92,6 +93,9 @@ func CreateAddressInfo(systemID, vmID, siloID guid.GUID, passthru bool) (resourc &ret, nil, ); err != nil { + if closeErr := windows.CloseHandle(h); closeErr != nil { + log.G(context.Background()).WithError(closeErr).Debug("failed to close address info handle") + } return nil, err } diff --git a/internal/tools/hvsocketaddr/main.go b/internal/tools/hvsocketaddr/main.go index 0bed8b3ca6..ae271d2e96 100644 --- a/internal/tools/hvsocketaddr/main.go +++ b/internal/tools/hvsocketaddr/main.go @@ -32,6 +32,7 @@ func main() { g, err := HCSIDToGUID(os.Args[1]) if err != nil { fmt.Printf("error: %s\n", err) + os.Exit(1) } fmt.Printf("%s\n", g) }