Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1631445 > unrolled thread
| Started by | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| First post | 2017-04-26 15:10 +0200 |
| Last post | 2017-04-26 15:10 +0200 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/3] ASoC: simple-card: Fine-tuning for three function implementations SF Markus Elfring <elfring@users.sourceforge.net> - 2017-04-26 15:10 +0200
[PATCH 2/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_probe() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-04-26 15:10 +0200
[PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-04-26 15:10 +0200
Re: [alsa-devel] [PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2017-04-28 11:00 +0200
Re: [alsa-devel] [PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-04-28 12:50 +0200
[PATCH 3/3] ASoC: simple-scu-card: Use devm_kcalloc() in asoc_simple_card_probe() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-04-26 15:10 +0200
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-04-26 15:10 +0200 |
| Subject | [PATCH 0/3] ASoC: simple-card: Fine-tuning for three function implementations |
| Message-ID | <tAuRI-2H8-3@gated-at.bofh.it> |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 26 Apr 2017 14:54:32 +0200 Three update suggestions were taken into account from static source code analysis. Markus Elfring (3): Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() Use devm_kcalloc() in asoc_simple_card_probe() SCU: Use devm_kcalloc() in asoc_simple_card_probe() sound/soc/generic/simple-card.c | 8 ++++---- sound/soc/generic/simple-scu-card.c | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) -- 2.12.2
[toc] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-04-26 15:10 +0200 |
| Subject | [PATCH 2/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_probe() |
| Message-ID | <tAuRI-2H8-5@gated-at.bofh.it> |
| In reply to | #1631445 |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 26 Apr 2017 14:32:12 +0200 Multiplications for the size determination of memory allocations indicated that array data structures should be processed. Thus use the corresponding function "devm_kcalloc". This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- sound/soc/generic/simple-card.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index b59d51374b89..55586326fde8 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -437,8 +437,8 @@ static int asoc_simple_card_probe(struct platform_device *pdev) if (!priv) return -ENOMEM; - dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); - dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); + dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL); + dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL); if (!dai_props || !dai_link) return -ENOMEM; -- 2.12.2
[toc] | [prev] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-04-26 15:10 +0200 |
| Subject | [PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() |
| Message-ID | <tAuRI-2H8-7@gated-at.bofh.it> |
| In reply to | #1631445 |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 26 Apr 2017 14:21:51 +0200 A multiplication for the size determination of a memory allocation indicated that an array data structure should be processed. Thus use the corresponding function "devm_kcalloc". This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- sound/soc/generic/simple-card.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 2c9dedab5184..b59d51374b89 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -334,8 +334,8 @@ static int asoc_simple_card_parse_aux_devs(struct device_node *node, if (n <= 0) return -EINVAL; - card->aux_dev = devm_kzalloc(dev, - n * sizeof(*card->aux_dev), GFP_KERNEL); + card->aux_dev = devm_kcalloc(dev, n, sizeof(*card->aux_dev), + GFP_KERNEL); if (!card->aux_dev) return -ENOMEM; -- 2.12.2
[toc] | [prev] | [next] | [standalone]
| From | Alexandre Belloni <alexandre.belloni@free-electrons.com> |
|---|---|
| Date | 2017-04-28 11:00 +0200 |
| Subject | Re: [alsa-devel] [PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() |
| Message-ID | <tB9UT-53z-45@gated-at.bofh.it> |
| In reply to | #1631447 |
Hi, On 26/04/2017 at 15:04:11 +0200, SF Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Wed, 26 Apr 2017 14:21:51 +0200 > > A multiplication for the size determination of a memory allocation > indicated that an array data structure should be processed. > Thus use the corresponding function "devm_kcalloc". > > This issue was detected by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > sound/soc/generic/simple-card.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c > index 2c9dedab5184..b59d51374b89 100644 > --- a/sound/soc/generic/simple-card.c > +++ b/sound/soc/generic/simple-card.c > @@ -334,8 +334,8 @@ static int asoc_simple_card_parse_aux_devs(struct device_node *node, > if (n <= 0) > return -EINVAL; > > - card->aux_dev = devm_kzalloc(dev, > - n * sizeof(*card->aux_dev), GFP_KERNEL); > + card->aux_dev = devm_kcalloc(dev, n, sizeof(*card->aux_dev), > + GFP_KERNEL); Do you realize that this change has absolutely no value and just makes the code slower (one more test in the allocation path)? -- Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
[toc] | [prev] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-04-28 12:50 +0200 |
| Subject | Re: [alsa-devel] [PATCH 1/3] ASoC: simple-card: Use devm_kcalloc() in asoc_simple_card_parse_aux_devs() |
| Message-ID | <tBbDk-67E-5@gated-at.bofh.it> |
| In reply to | #1632705 |
>> @@ -334,8 +334,8 @@ static int asoc_simple_card_parse_aux_devs(struct device_node *node, >> if (n <= 0) >> return -EINVAL; >> >> - card->aux_dev = devm_kzalloc(dev, >> - n * sizeof(*card->aux_dev), GFP_KERNEL); >> + card->aux_dev = devm_kcalloc(dev, n, sizeof(*card->aux_dev), >> + GFP_KERNEL); > > Do you realize that this change has absolutely no value We can have different software development opinions about such a source code adjustment. Does it improve the indentation for the parameters which are passed to this function call? > and just makes the code slower (one more test in the allocation path)? Do we stumble on a target conflict for the shown implementation detail? Does the previous size calculation contain the general possibility for an integer overflow? https://cwe.mitre.org/data/definitions/190.html The value for the variable “len” (and also “n”) might be small enough so that the computed value will usually not exceed the data type limit in this use case. Regards, Markus
[toc] | [prev] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2017-04-26 15:10 +0200 |
| Subject | [PATCH 3/3] ASoC: simple-scu-card: Use devm_kcalloc() in asoc_simple_card_probe() |
| Message-ID | <tAuRI-2H8-11@gated-at.bofh.it> |
| In reply to | #1631445 |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 26 Apr 2017 14:40:40 +0200 Multiplications for the size determination of memory allocations indicated that array data structures should be processed. Thus use the corresponding function "devm_kcalloc". This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- sound/soc/generic/simple-scu-card.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c index dcbcab230d1b..530a7aa387c5 100644 --- a/sound/soc/generic/simple-scu-card.c +++ b/sound/soc/generic/simple-scu-card.c @@ -270,9 +270,8 @@ static int asoc_simple_card_probe(struct platform_device *pdev) return -ENOMEM; num = of_get_child_count(np); - - dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); - dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); + dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL); + dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL); if (!dai_props || !dai_link) return -ENOMEM; -- 2.12.2
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web