}
/* 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);
return root_hub_name_utf8;
}
}
/* 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);
return ext_hub_name_utf8;
}
|| desc->bLength % 2)
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,