1
0
mirror of git://sigrok.org/libserialport synced 2023-08-10 21:13:24 +03:00

windows: Fix incorrect wc_to_utf8() calls.

This fixes bug #1079.
This commit is contained in:
Uwe Hermann 2019-12-28 17:08:49 +01:00
parent 38b71192dd
commit 2e0437c28e

View File

@ -82,7 +82,7 @@ static char *get_root_hub_name(HANDLE host_controller)
} }
/* Convert the root hub name string to UTF-8. */ /* Convert the root hub name string to UTF-8. */
root_hub_name_utf8 = wc_to_utf8(root_hub_name_wc->RootHubName, size); root_hub_name_utf8 = wc_to_utf8(root_hub_name_wc->RootHubName, size - offsetof(USB_ROOT_HUB_NAME, RootHubName));
free(root_hub_name_wc); free(root_hub_name_wc);
return root_hub_name_utf8; return root_hub_name_utf8;
} }
@ -117,7 +117,7 @@ static char *get_external_hub_name(HANDLE hub, ULONG connection_index)
} }
/* Convert the external hub name string to UTF-8. */ /* Convert the external hub name string to UTF-8. */
ext_hub_name_utf8 = wc_to_utf8(ext_hub_name_wc->NodeName, size); ext_hub_name_utf8 = wc_to_utf8(ext_hub_name_wc->NodeName, size - offsetof(USB_NODE_CONNECTION_NAME, NodeName));
free(ext_hub_name_wc); free(ext_hub_name_wc);
return ext_hub_name_utf8; return ext_hub_name_utf8;
} }
@ -146,7 +146,7 @@ static char *get_string_descriptor(HANDLE hub_device, ULONG connection_index,
|| desc->bLength % 2) || desc->bLength % 2)
return NULL; return NULL;
return wc_to_utf8(desc->bString, desc->bLength); return wc_to_utf8(desc->bString, desc->bLength - offsetof(USB_STRING_DESCRIPTOR, bString));
} }
static void enumerate_hub_ports(struct sp_port *port, HANDLE hub_device, static void enumerate_hub_ports(struct sp_port *port, HANDLE hub_device,