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:
parent
3d98f9b68d
commit
02ac3f4b95
|
@ -1091,7 +1091,7 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp)
|
||||||
size_t len;
|
size_t len;
|
||||||
uint64_t i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
|
uint64_t i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
|
||||||
GuestFilesystemInfo *fs = NULL;
|
GuestFilesystemInfo *fs = NULL;
|
||||||
HANDLE hLocalDiskHandle = NULL;
|
HANDLE hLocalDiskHandle = INVALID_HANDLE_VALUE;
|
||||||
|
|
||||||
GetVolumePathNamesForVolumeName(guid, (LPCH)&mnt, 0, &info_size);
|
GetVolumePathNamesForVolumeName(guid, (LPCH)&mnt, 0, &info_size);
|
||||||
if (GetLastError() != ERROR_MORE_DATA) {
|
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->type = g_strdup(fs_name);
|
||||||
fs->disk = build_guest_disk_info(guid, errp);
|
fs->disk = build_guest_disk_info(guid, errp);
|
||||||
free:
|
free:
|
||||||
CloseHandle(hLocalDiskHandle);
|
if (hLocalDiskHandle != INVALID_HANDLE_VALUE) {
|
||||||
|
CloseHandle(hLocalDiskHandle);
|
||||||
|
}
|
||||||
g_free(mnt_point);
|
g_free(mnt_point);
|
||||||
return fs;
|
return fs;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue