2022-12-08 12:07:04

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] usb: storage: Add check for kcalloc

As kcalloc may return NULL pointer, the return value should
be checked and return error if fails as same as the ones in
alauda_read_map.

Fixes: e80b0fade09e ("[PATCH] USB Storage: add alauda support")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/usb/storage/alauda.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
index 747be69e5e69..5e912dd29b4c 100644
--- a/drivers/usb/storage/alauda.c
+++ b/drivers/usb/storage/alauda.c
@@ -438,6 +438,8 @@ static int alauda_init_media(struct us_data *us)
+ MEDIA_INFO(us).blockshift + MEDIA_INFO(us).pageshift);
MEDIA_INFO(us).pba_to_lba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
MEDIA_INFO(us).lba_to_pba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
+ if (MEDIA_INFO(us).pba_to_lba == NULL || MEDIA_INFO(us).lba_to_pba == NULL)
+ return USB_STOR_TRANSPORT_ERROR;

if (alauda_reset_media(us) != USB_STOR_XFER_GOOD)
return USB_STOR_TRANSPORT_ERROR;
--
2.25.1


2022-12-08 15:53:47

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] usb: storage: Add check for kcalloc

On Thu, Dec 08, 2022 at 07:00:58PM +0800, Jiasheng Jiang wrote:
> As kcalloc may return NULL pointer, the return value should
> be checked and return error if fails as same as the ones in
> alauda_read_map.
>
> Fixes: e80b0fade09e ("[PATCH] USB Storage: add alauda support")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---

Acked-by: Alan Stern <[email protected]>

> drivers/usb/storage/alauda.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
> index 747be69e5e69..5e912dd29b4c 100644
> --- a/drivers/usb/storage/alauda.c
> +++ b/drivers/usb/storage/alauda.c
> @@ -438,6 +438,8 @@ static int alauda_init_media(struct us_data *us)
> + MEDIA_INFO(us).blockshift + MEDIA_INFO(us).pageshift);
> MEDIA_INFO(us).pba_to_lba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
> MEDIA_INFO(us).lba_to_pba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
> + if (MEDIA_INFO(us).pba_to_lba == NULL || MEDIA_INFO(us).lba_to_pba == NULL)
> + return USB_STOR_TRANSPORT_ERROR;
>
> if (alauda_reset_media(us) != USB_STOR_XFER_GOOD)
> return USB_STOR_TRANSPORT_ERROR;
> --
> 2.25.1
>