]> sigrok.org Git - libserialport.git/commitdiff
Check bus:address and vid:pid validity.
authorAurelien Jacobs <redacted>
Wed, 11 Jun 2014 15:21:51 +0000 (17:21 +0200)
committerAurelien Jacobs <redacted>
Wed, 11 Jun 2014 15:21:51 +0000 (17:21 +0200)
serialport.c

index 0091d9a8d4757d9d69f3040314b6e989ad6d7ca7..558322ecfff4e3d529d46998fc7e365b5135a147 100644 (file)
@@ -148,6 +148,8 @@ enum sp_return sp_get_port_usb_bus_address(const struct sp_port *port,
                RETURN_ERROR(SP_ERR_ARG, "Null port");
        if (port->transport != SP_TRANSPORT_USB)
                RETURN_ERROR(SP_ERR_ARG, "Port does not use USB transport");
+       if (port->usb_bus < 0 || port->usb_address < 0)
+               RETURN_ERROR(SP_ERR_SUPP, "Bus and address values are not available");
 
        if (usb_bus)      *usb_bus     = port->usb_bus;
        if (usb_address)  *usb_address = port->usb_address;
@@ -164,6 +166,8 @@ enum sp_return sp_get_port_usb_vid_pid(const struct sp_port *port,
                RETURN_ERROR(SP_ERR_ARG, "Null port");
        if (port->transport != SP_TRANSPORT_USB)
                RETURN_ERROR(SP_ERR_ARG, "Port does not use USB transport");
+       if (port->usb_vid < 0 || port->usb_pid < 0)
+               RETURN_ERROR(SP_ERR_SUPP, "VID:PID values are not available");
 
        if (usb_vid)  *usb_vid = port->usb_vid;
        if (usb_pid)  *usb_pid = port->usb_pid;