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