From 954c8d0bbd174919878381abbb03c5df3bd5f95e Mon Sep 17 00:00:00 2001 From: Amin Ben Ramdhane Date: Thu, 19 Nov 2020 11:25:31 +0100 Subject: [PATCH] Device.USB.USBHosts.Host.{i}.Device.{i}.VendorID: converts its value from hex to unsigned int --- dmtree/tr181/usb.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/dmtree/tr181/usb.c b/dmtree/tr181/usb.c index 339fcf03..edd7fb27 100644 --- a/dmtree/tr181/usb.c +++ b/dmtree/tr181/usb.c @@ -919,9 +919,9 @@ static int get_USBUSBHostsHostDevice_ProductID(char *refparam, struct dmctx *ctx unsigned int ui_idproduct; *value = "0"; - int rc = read_sysfs_usb_port(data, "idProduct", &idproduct); + int rc = read_sysfs_usb_port(data, "idProduct", &idproduct); - if(idproduct != NULL) { + if (rc != -1 && idproduct != NULL) { sscanf(idproduct, "%x", &ui_idproduct); dmasprintf(value, "%u", ui_idproduct); } @@ -930,7 +930,17 @@ static int get_USBUSBHostsHostDevice_ProductID(char *refparam, struct dmctx *ctx static int get_USBUSBHostsHostDevice_VendorID(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - return read_sysfs_usb_port(data, "idVendor", value); + char *idvendor = NULL; + unsigned int ui_idvendor; + + *value = "0"; + int rc = read_sysfs_usb_port(data, "idVendor", &idvendor); + + if (rc != -1 && idvendor != NULL) { + sscanf(idvendor, "%x", &ui_idvendor); + dmasprintf(value, "%u", ui_idvendor); + } + return rc; } static int get_USBUSBHostsHostDevice_Manufacturer(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)