[PATCH] usbip: add NULL check for calloc in usbip_exported_device_new
From: longlong yan
Date: Mon Aug 17 2026 - 02:06:50 EST
Add a NULL check for the return value of calloc() in
usbip_exported_device_new(). If calloc() fails and returns NULL,
the subsequent dereference of edev->sudev would cause a NULL
pointer dereference.
Also fix the error path at the 'err' label to check edev before
dereferencing edev->sudev. Without this fix, if calloc() fails and
jumps to 'err', the code would dereference NULL when checking
edev->sudev.
Signed-off-by: longlong yan <yanlonglong@xxxxxxxxxx>
---
tools/usb/usbip/libsrc/usbip_host_common.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/usb/usbip/libsrc/usbip_host_common.c b/tools/usb/usbip/libsrc/usbip_host_common.c
index 01599cb2fa7b..94762bc282eb 100644
--- a/tools/usb/usbip/libsrc/usbip_host_common.c
+++ b/tools/usb/usbip/libsrc/usbip_host_common.c
@@ -71,6 +71,8 @@ struct usbip_exported_device *usbip_exported_device_new(
int i;
edev = calloc(1, sizeof(struct usbip_exported_device));
+ if (!edev)
+ goto err;
edev->sudev =
udev_device_new_from_syspath(udev_context, sdevpath);
@@ -107,7 +109,7 @@ struct usbip_exported_device *usbip_exported_device_new(
return edev;
err:
- if (edev->sudev)
+ if (edev && edev->sudev)
udev_device_unref(edev->sudev);
if (edev)
free(edev);
--
2.43.0