Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | xkernel <> | Subject | [PATCH] media: usb: dvb-usb-v2: check the return value of kstrdup() | Date | Sun, 12 Dec 2021 22:52:24 +0800 |
| |
kstrdup() returns NULL if some internal memory errors happen, it is better to check the return value of it. Since the return type of dvb_usbv2_disconnect() is void, so only raise the error info.
Signed-off-by: xkernel <xkernel.wang@foxmail.com> --- drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c index f1c79f3..a43a310 100644 --- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c +++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c @@ -1009,6 +1009,9 @@ void dvb_usbv2_disconnect(struct usb_interface *intf) const char *devname = kstrdup(dev_name(&d->udev->dev), GFP_KERNEL); const char *drvname = d->name; + if (!devname) + dev_err(&d->udev->dev, "%s: kstrdup() failed\n", KBUILD_MODNAME); + dev_dbg(&d->udev->dev, "%s: bInterfaceNumber=%d\n", __func__, intf->cur_altsetting->desc.bInterfaceNumber); @@ -1023,9 +1026,14 @@ void dvb_usbv2_disconnect(struct usb_interface *intf) kfree(d->priv); kfree(d); - pr_info("%s: '%s:%s' successfully deinitialized and disconnected\n", - KBUILD_MODNAME, drvname, devname); - kfree(devname); + if (devname) { + pr_info("%s: '%s:%s' successfully deinitialized and disconnected\n", + KBUILD_MODNAME, drvname, devname); + kfree(devname); + } else { + pr_info("%s: '%s:UNKNOWN' successfully deinitialized and disconnected\n", + KBUILD_MODNAME, drvname); + } } EXPORT_SYMBOL(dvb_usbv2_disconnect); --
| ![\](/images/icornerr.gif) |