Message ID | 20250329002911.132826-1-bsdhenrymartin@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Subject: [PATCH] usb: gadget: aspeed: Add NULL check in the ast_vhub_init_dev | expand |
On Sat, 2025-03-29 at 08:29 +0800, Henry Martin wrote: > When devm_kasprintf() fails, it returns a NULL pointer. However, this > return value is not properly checked in the function > ast_vhub_init_dev. > > A NULL check should be added after the devm_kasprintf call to prevent > potential NULL pointer dereference error. > > Fixes: 7ecca2a4080cb ("usb/gadget: Add driver for Aspeed SoC virtual > hub") > Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> > --- > drivers/usb/gadget/udc/aspeed-vhub/dev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/dev.c > b/drivers/usb/gadget/udc/aspeed-vhub/dev.c > index 573109ca5b79..1709a58299a5 100644 > --- a/drivers/usb/gadget/udc/aspeed-vhub/dev.c > +++ b/drivers/usb/gadget/udc/aspeed-vhub/dev.c > @@ -545,9 +545,11 @@ int ast_vhub_init_dev(struct ast_vhub *vhub, > unsigned int idx) > struct device *parent = &vhub->pdev->dev; > int rc; > > + d->name = devm_kasprintf(parent, GFP_KERNEL, "port%d", idx + > 1); > + if (!d->name) > + return -ENOMEM; > d->vhub = vhub; > d->index = idx; > - d->name = devm_kasprintf(parent, GFP_KERNEL, "port%d", > idx+1); > d->regs = vhub->regs + 0x100 + 0x10 * idx; > > ast_vhub_init_ep0(vhub, &d->ep0, d);
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/dev.c b/drivers/usb/gadget/udc/aspeed-vhub/dev.c index 573109ca5b79..1709a58299a5 100644 --- a/drivers/usb/gadget/udc/aspeed-vhub/dev.c +++ b/drivers/usb/gadget/udc/aspeed-vhub/dev.c @@ -545,9 +545,11 @@ int ast_vhub_init_dev(struct ast_vhub *vhub, unsigned int idx) struct device *parent = &vhub->pdev->dev; int rc; + d->name = devm_kasprintf(parent, GFP_KERNEL, "port%d", idx + 1); + if (!d->name) + return -ENOMEM; d->vhub = vhub; d->index = idx; - d->name = devm_kasprintf(parent, GFP_KERNEL, "port%d", idx+1); d->regs = vhub->regs + 0x100 + 0x10 * idx; ast_vhub_init_ep0(vhub, &d->ep0, d);
When devm_kasprintf() fails, it returns a NULL pointer. However, this return value is not properly checked in the function ast_vhub_init_dev. A NULL check should be added after the devm_kasprintf call to prevent potential NULL pointer dereference error. Fixes: 7ecca2a4080cb ("usb/gadget: Add driver for Aspeed SoC virtual hub") Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> --- drivers/usb/gadget/udc/aspeed-vhub/dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)