qga-win: demystify namespace stripping

It was not obvious what exactly the cryptic string copying does to the
GUID. This change makes the intent clearer.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
Tomáš Golembiovský 2018-10-23 13:23:23 +02:00 committed by Michael Roth
parent 4550dee80f
commit 7fae518479

View File

@ -521,7 +521,7 @@ static GuestPCIAddress *get_pci_info(char *guid, Error **errp)
char dev_name[MAX_PATH]; char dev_name[MAX_PATH];
char *buffer = NULL; char *buffer = NULL;
GuestPCIAddress *pci = NULL; GuestPCIAddress *pci = NULL;
char *name = g_strdup(&guid[4]); char *name = NULL;
bool partial_pci = false; bool partial_pci = false;
pci = g_malloc0(sizeof(*pci)); pci = g_malloc0(sizeof(*pci));
pci->domain = -1; pci->domain = -1;
@ -529,6 +529,13 @@ static GuestPCIAddress *get_pci_info(char *guid, Error **errp)
pci->function = -1; pci->function = -1;
pci->bus = -1; pci->bus = -1;
if (g_str_has_prefix(guid, "\\\\.\\") ||
g_str_has_prefix(guid, "\\\\?\\")) {
name = g_strdup(guid + 4);
} else {
name = g_strdup(guid);
}
if (!QueryDosDevice(name, dev_name, ARRAY_SIZE(dev_name))) { if (!QueryDosDevice(name, dev_name, ARRAY_SIZE(dev_name))) {
error_setg_win32(errp, GetLastError(), "failed to get dos device name"); error_setg_win32(errp, GetLastError(), "failed to get dos device name");
goto out; goto out;