qga-win: Fix build_guest_fsinfo() close of nonexistent

On the current error path of build_guest_fsinfo(), a non existent handle
is passed to CloseHandle().

This patch adds initialization of hLocalDiskHandle to
INVALID_HANDLE_VALUE, and checks for handle validity before the handle
is closed.

Signed-off-by: Basil Salman <basil@daynix.com>
Signed-off-by: Basil Salman <basil@redhat.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
This commit is contained in:
Basil Salman 2021-07-12 11:15:08 -05:00 committed by Michael Roth
parent 3d98f9b68d
commit 02ac3f4b95

View File

@ -1091,7 +1091,7 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp)
size_t len;
uint64_t i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
GuestFilesystemInfo *fs = NULL;
HANDLE hLocalDiskHandle = NULL;
HANDLE hLocalDiskHandle = INVALID_HANDLE_VALUE;
GetVolumePathNamesForVolumeName(guid, (LPCH)&mnt, 0, &info_size);
if (GetLastError() != ERROR_MORE_DATA) {
@ -1149,7 +1149,9 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp)
fs->type = g_strdup(fs_name);
fs->disk = build_guest_disk_info(guid, errp);
free:
CloseHandle(hLocalDiskHandle);
if (hLocalDiskHandle != INVALID_HANDLE_VALUE) {
CloseHandle(hLocalDiskHandle);
}
g_free(mnt_point);
return fs;
}