From a602d7be9d3c810577de4cec8e0e578ce65d2029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Fri, 22 Nov 2024 17:20:27 +0100 Subject: [PATCH] logical_disk: revert panic trigger on error (#1755) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- internal/collector/logical_disk/logical_disk.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/collector/logical_disk/logical_disk.go b/internal/collector/logical_disk/logical_disk.go index d158eff7..466809b2 100644 --- a/internal/collector/logical_disk/logical_disk.go +++ b/internal/collector/logical_disk/logical_disk.go @@ -468,14 +468,17 @@ func getVolumeInfo(rootDrive string) (volumeInfo, error) { // If rootDrive is a NTFS directory, convert it to a volume GUID. if strings.Contains(volumePath, `\`) { - volumePathName, err := windows.UTF16PtrFromString(volumePath + `\`) + // GetVolumeNameForVolumeMountPoint expects a trailing backslash. + volumePath += `\` + + volumePathName, err := windows.UTF16PtrFromString(volumePath) if err != nil { - return volumeInfo{}, fmt.Errorf("could not convert rootDrive to volume path: %w", err) + return volumeInfo{}, fmt.Errorf("could not convert rootDrive to volume path %s: %w", volumePath, err) } volumeGUIDPtr := make([]uint16, 50) if err := windows.GetVolumeNameForVolumeMountPoint(volumePathName, &volumeGUIDPtr[0], uint32(len(volumeGUIDPtr))); err != nil { - panic(fmt.Errorf("could not get volume GUID: %w", err)) + return volumeInfo{}, fmt.Errorf("could not get volume GUID for volume %s: %w", volumePath, err) } volumePath = windows.UTF16ToString(volumeGUIDPtr)