[PATCH] Fix possible NULL Pointer Dereference in 'asoc_qcom_lpass_cpu_platform_probe'
A 'devm_kzalloc' in 'asoc_qcom_lpass_cpu_platform_probe' could possibly return NULL pointer. NULL Pointer Dereference may be triggerred in 'asoc_qcom_lpass_cpu_platform_probe' without addtional check. Add a null check for the returned pointer.
Fixes: b5022a36d28f ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers") Signed-off-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zijie Zhao zzjas98@gmail.com Reported-by: Chenyuan Yang chenyuan0y@gmail.com --- sound/soc/qcom/lpass-cpu.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 5a47f661e0c6..a8e56f47f237 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -1243,6 +1243,9 @@ int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev) drvdata->i2sctl = devm_kzalloc(&pdev->dev, sizeof(struct lpaif_i2sctl), GFP_KERNEL);
+ if (!drvdata->i2sctl) + return -ENOMEM; + /* Initialize bitfields for dai I2SCTL register */ ret = lpass_cpu_init_i2sctl_bitfields(dev, drvdata->i2sctl, drvdata->lpaif_map);
A 'devm_kzalloc' in 'asoc_qcom_lpass_cpu_platform_probe' could possibly return NULL pointer. NULL Pointer Dereference may be triggerred in 'asoc_qcom_lpass_cpu_platform_probe' without addtional check. Add a null check for the returned pointer.
How do you think about a wording variant like the following?
The result from a call of the function “devm_kzalloc” was passed to a subsequent function call without checking for a null pointer before (according to a memory allocation failure). Thus return directly after a failed devm_kzalloc() call.
…
Signed-off-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zichen Xie zichenxie0106@gmail.com
…
How good does such a tag combination fit together for the same person? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docu...
Can a subject like “[PATCH] ASoC: qcom: lpass-cpu: Return directly after a failed devm_kzalloc() call in asoc_qcom_lpass_cpu_platform_probe()” be more appropriate? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docu...
…
+++ b/sound/soc/qcom/lpass-cpu.c @@ -1243,6 +1243,9 @@ int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev) drvdata->i2sctl = devm_kzalloc(&pdev->dev, sizeof(struct lpaif_i2sctl), GFP_KERNEL);
- if (!drvdata->i2sctl)
return -ENOMEM;
…
I suggest to omit a blank line here.
By the way: Would you become interested to omit the label “err” from this function implementation finally?
Regards, Markus
On Mon, Sep 30, 2024 at 06:33:49PM +0200, Markus Elfring wrote:
How do you think about a wording variant like the following?
The result from a call of the function “devm_kzalloc” was passed to a subsequent function call without checking for a null pointer before (according to a memory allocation failure). Thus return directly after a failed devm_kzalloc() call.
Feel free to ignore Markus, he has a long history of sending unhelpful review comments and continues to ignore repeated requests to stop.
How do you think about a wording variant like the following?
The result from a call of the function “devm_kzalloc” was passed to a subsequent function call without checking for a null pointer before (according to a memory allocation failure). Thus return directly after a failed devm_kzalloc() call.
Feel free to ignore Markus, he has a long history of sending unhelpful review comments and continues to ignore repeated requests to stop.
30 non-merge commits were published with related subjects so far. Can you get a more constructive view from parts of public software development history? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?h=v6...
Regards, Markus
On Sun, Sep 29, 2024 at 08:15:22PM -0500, Gax-c wrote:
A 'devm_kzalloc' in 'asoc_qcom_lpass_cpu_platform_probe' could possibly return NULL pointer. NULL Pointer Dereference may be triggerred in 'asoc_qcom_lpass_cpu_platform_probe' without addtional check. Add a null check for the returned pointer.
Your description and patch looks good to me.
But please run git log on the changed file and add a prefix to your subject to match other changes to this file, and please wrap your commit message at 75 characters.
A good resource to read about this is: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#the-c...
Please also use the form devm_kzalloc() instead of 'devm_kzalloc' when referring to kernel functions.
It seems reasonable to mark this for backporting to stable, so I'd also suggest adding the following tag:
Cc: stable@vger.kernel.org
Fixes: b5022a36d28f ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers") Signed-off-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zijie Zhao zzjas98@gmail.com Reported-by: Chenyuan Yang chenyuan0y@gmail.com
sound/soc/qcom/lpass-cpu.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 5a47f661e0c6..a8e56f47f237 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -1243,6 +1243,9 @@ int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev) drvdata->i2sctl = devm_kzalloc(&pdev->dev, sizeof(struct lpaif_i2sctl), GFP_KERNEL);
Please drop this empty line.
Regards, Bjorn
- if (!drvdata->i2sctl)
return -ENOMEM;
- /* Initialize bitfields for dai I2SCTL register */ ret = lpass_cpu_init_i2sctl_bitfields(dev, drvdata->i2sctl, drvdata->lpaif_map);
-- 2.25.1
A 'devm_kzalloc' in 'asoc_qcom_lpass_cpu_platform_probe' could possibly return NULL pointer. NULL Pointer Dereference may be triggerred in 'asoc_qcom_lpass_cpu_platform_probe' without addtional check. Add a null check for the returned pointer.
Your description and patch looks good to me.
Interesting “view” …
But please run git log on the changed file and add a prefix to your subject to match other changes to this file, and please wrap your commit message at 75 characters.
* How does your initial information fit to this patch review advice?
* Would you like to “tolerate” any typos (at the first glance)?
Regards, Markus
On 30/09/2024 03:15, Gax-c wrote:
A 'devm_kzalloc' in 'asoc_qcom_lpass_cpu_platform_probe' could possibly return NULL pointer. NULL Pointer Dereference may be triggerred in 'asoc_qcom_lpass_cpu_platform_probe' without addtional check. Add a null check for the returned pointer.
Please wrap commit message according to Linux coding style / submission process (neither too early nor over the limit): https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submi...
Fixes: b5022a36d28f ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers") Signed-off-by: Zichen Xie zichenxie0106@gmail.com Reported-by: Zichen Xie zichenxie0106@gmail.com
Drop the unnecessary tag. You are the author.
Reported-by: Zijie Zhao zzjas98@gmail.com Reported-by: Chenyuan Yang chenyuan0y@gmail.com
Why two people reported it? And where?
sound/soc/qcom/lpass-cpu.c | 3 +++ 1 file changed, 3 insertions(+)
Best regards, Krzysztof
participants (5)
-
Bjorn Andersson
-
Gax-c
-
Krzysztof Kozlowski
-
Mark Brown
-
Markus Elfring