RE: RE: [PATCH v2 2/4] extcon: Added extcon_alloc_cables to simplify extcon register function

From: MyungJoo Ham
Date: Thu Mar 02 2023 - 01:33:32 EST


> 
> 
>--------- Original Message ---------
>Sender : 이범우 <bw365.lee@xxxxxxxxxxx>Product S/W Lab(VD)/삼성전자
>Date : 2023-03-02 10:38 (GMT+9)
>Title : RE: [PATCH v2 2/4] extcon: Added extcon_alloc_cables to simplify extcon register function
> 
>Hello.
>
>As you can see, edev->cables are freed if extcon_alloc_cables() function return error handling in extcon_dev_register()
>Other added functions are also same.
>
>Because it's functionalized, apart from this, do you want to mention that it should be freed within the function?
>Please let me know your opinion.
>
>extcon_dev_register(struct extcon_dev *edev){
>...
>
>        ret = extcon_alloc_cables(edev);
>        if (ret)
>                goto err_alloc_cables;
>
>...
>
>err_alloc_cables:
>         if (edev->max_supported)
>                 kfree(edev->cables);
>
>
>Regards,
>Bumwoo

In such a case, you are doing kfree(NULL); with the following:

>+static int extcon_alloc_cables(struct extcon_dev *edev) {
...
>+ if (!edev->max_supported)
>+ return 0;
>+
>+ edev->cables = kcalloc(edev->max_supported,
>+ sizeof(struct extcon_cable),
>+ GFP_KERNEL);
>+ if (!edev->cables)
>+ return -ENOMEM;




Cheers,
MyungJoo