drivers/gpib/agilent_82357a/agilent_82357a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The agilent_82357a driver uses the USB device serial string for device
matching but does not verify that the string exists before passing it
to strcmp().
Verify that the device has a serial number before accessing it to avoid
triggering a NULL-pointer dereference with devices that don't provide
a serial number (iSerialNumber = 0).
Similar to commit aa79f996eb41 ("i2c: cp2615: fix serial string
NULL-deref at probe").
Found by Claude:sonnet-4.5
Signed-off-by: Joe Simmons-Talbott <joest@redhat.com>
---
drivers/gpib/agilent_82357a/agilent_82357a.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpib/agilent_82357a/agilent_82357a.c b/drivers/gpib/agilent_82357a/agilent_82357a.c
index e1349afbf933..da046ea40f11 100644
--- a/drivers/gpib/agilent_82357a/agilent_82357a.c
+++ b/drivers/gpib/agilent_82357a/agilent_82357a.c
@@ -1298,7 +1298,7 @@ static inline int agilent_82357a_device_match(struct usb_interface *interface,
if (gpib_match_device_path(&interface->dev, config->device_path) == 0)
return 0;
if (config->serial_number &&
- strcmp(usbdev->serial, config->serial_number) != 0)
+ (!usbdev->serial || strcmp(usbdev->serial, config->serial_number) != 0))
return 0;
return 1;
--
2.53.0
On Thu, Mar 26, 2026 at 09:12:56AM -0400, Joe Simmons-Talbott wrote:
> The agilent_82357a driver uses the USB device serial string for device
> matching but does not verify that the string exists before passing it
> to strcmp().
>
> Verify that the device has a serial number before accessing it to avoid
> triggering a NULL-pointer dereference with devices that don't provide
> a serial number (iSerialNumber = 0).
>
> Similar to commit aa79f996eb41 ("i2c: cp2615: fix serial string
> NULL-deref at probe").
>
> Found by Claude:sonnet-4.5
>
> Signed-off-by: Joe Simmons-Talbott <joest@redhat.com>
> ---
> drivers/gpib/agilent_82357a/agilent_82357a.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpib/agilent_82357a/agilent_82357a.c b/drivers/gpib/agilent_82357a/agilent_82357a.c
> index e1349afbf933..da046ea40f11 100644
> --- a/drivers/gpib/agilent_82357a/agilent_82357a.c
> +++ b/drivers/gpib/agilent_82357a/agilent_82357a.c
> @@ -1298,7 +1298,7 @@ static inline int agilent_82357a_device_match(struct usb_interface *interface,
> if (gpib_match_device_path(&interface->dev, config->device_path) == 0)
> return 0;
> if (config->serial_number &&
> - strcmp(usbdev->serial, config->serial_number) != 0)
> + (!usbdev->serial || strcmp(usbdev->serial, config->serial_number) != 0))
> return 0;
>
> return 1;
> --
> 2.53.0
>
Acked-by: Dave Penkler <dpenkler@gmail.com>
© 2016 - 2026 Red Hat, Inc.