2007-11-17 11:02:08

by Akinobu Mita

[permalink] [raw]
Subject: [PATCH] power: use kasprintf

Use kasprintf instead of kmalloc()-strcpy()-strcat().

Cc: Anton Vorontsov <[email protected]>
Cc: David Woodhouse <[email protected]>
Signed-off-by: Akinobu Mita <[email protected]>

---
drivers/power/power_supply_leds.c | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)

Index: 2.6-mm/drivers/power/power_supply_leds.c
===================================================================
--- 2.6-mm.orig/drivers/power/power_supply_leds.c
+++ 2.6-mm/drivers/power/power_supply_leds.c
@@ -10,6 +10,7 @@
* You may use this code as per GPL version 2
*/

+#include <linux/kernel.h>
#include <linux/power_supply.h>

#include "power_supply.h"
@@ -48,28 +49,20 @@ static int power_supply_create_bat_trigg
{
int rc = 0;

- psy->charging_full_trig_name = kmalloc(strlen(psy->name) +
- sizeof("-charging-or-full"), GFP_KERNEL);
+ psy->charging_full_trig_name = kasprintf(GFP_KERNEL,
+ "%s-charging-or-full", psy->name);
if (!psy->charging_full_trig_name)
goto charging_full_failed;

- psy->charging_trig_name = kmalloc(strlen(psy->name) +
- sizeof("-charging"), GFP_KERNEL);
+ psy->charging_trig_name = kasprintf(GFP_KERNEL,
+ "%s-charging", psy->name);
if (!psy->charging_trig_name)
goto charging_failed;

- psy->full_trig_name = kmalloc(strlen(psy->name) +
- sizeof("-full"), GFP_KERNEL);
+ psy->full_trig_name = kasprintf(GFP_KERNEL, "%s-full", psy->name);
if (!psy->full_trig_name)
goto full_failed;

- strcpy(psy->charging_full_trig_name, psy->name);
- strcat(psy->charging_full_trig_name, "-charging-or-full");
- strcpy(psy->charging_trig_name, psy->name);
- strcat(psy->charging_trig_name, "-charging");
- strcpy(psy->full_trig_name, psy->name);
- strcat(psy->full_trig_name, "-full");
-
led_trigger_register_simple(psy->charging_full_trig_name,
&psy->charging_full_trig);
led_trigger_register_simple(psy->charging_trig_name,
@@ -120,14 +113,10 @@ static int power_supply_create_gen_trigg
{
int rc = 0;

- psy->online_trig_name = kmalloc(strlen(psy->name) + sizeof("-online"),
- GFP_KERNEL);
+ psy->online_trig_name = kasprintf(GFP_KERNEL, "%s-online", psy->name);
if (!psy->online_trig_name)
goto online_failed;

- strcpy(psy->online_trig_name, psy->name);
- strcat(psy->online_trig_name, "-online");
-
led_trigger_register_simple(psy->online_trig_name, &psy->online_trig);

goto success;


2007-11-25 23:26:59

by Anton Vorontsov

[permalink] [raw]
Subject: Re: [PATCH] power: use kasprintf

On Sat, Nov 17, 2007 at 07:55:58PM +0900, Akinobu Mita wrote:
> Use kasprintf instead of kmalloc()-strcpy()-strcat().

Applied to battery-2.6.git, thanks.

> Cc: Anton Vorontsov <[email protected]>
> Cc: David Woodhouse <[email protected]>
> Signed-off-by: Akinobu Mita <[email protected]>
>
> ---
> drivers/power/power_supply_leds.c | 25 +++++++------------------
> 1 file changed, 7 insertions(+), 18 deletions(-)
>
> Index: 2.6-mm/drivers/power/power_supply_leds.c
> ===================================================================
> --- 2.6-mm.orig/drivers/power/power_supply_leds.c
> +++ 2.6-mm/drivers/power/power_supply_leds.c
> @@ -10,6 +10,7 @@
> * You may use this code as per GPL version 2
> */
>
> +#include <linux/kernel.h>
> #include <linux/power_supply.h>
>
> #include "power_supply.h"
> @@ -48,28 +49,20 @@ static int power_supply_create_bat_trigg
> {
> int rc = 0;
>
> - psy->charging_full_trig_name = kmalloc(strlen(psy->name) +
> - sizeof("-charging-or-full"), GFP_KERNEL);
> + psy->charging_full_trig_name = kasprintf(GFP_KERNEL,
> + "%s-charging-or-full", psy->name);
> if (!psy->charging_full_trig_name)
> goto charging_full_failed;
>
> - psy->charging_trig_name = kmalloc(strlen(psy->name) +
> - sizeof("-charging"), GFP_KERNEL);
> + psy->charging_trig_name = kasprintf(GFP_KERNEL,
> + "%s-charging", psy->name);
> if (!psy->charging_trig_name)
> goto charging_failed;
>
> - psy->full_trig_name = kmalloc(strlen(psy->name) +
> - sizeof("-full"), GFP_KERNEL);
> + psy->full_trig_name = kasprintf(GFP_KERNEL, "%s-full", psy->name);
> if (!psy->full_trig_name)
> goto full_failed;
>
> - strcpy(psy->charging_full_trig_name, psy->name);
> - strcat(psy->charging_full_trig_name, "-charging-or-full");
> - strcpy(psy->charging_trig_name, psy->name);
> - strcat(psy->charging_trig_name, "-charging");
> - strcpy(psy->full_trig_name, psy->name);
> - strcat(psy->full_trig_name, "-full");
> -
> led_trigger_register_simple(psy->charging_full_trig_name,
> &psy->charging_full_trig);
> led_trigger_register_simple(psy->charging_trig_name,
> @@ -120,14 +113,10 @@ static int power_supply_create_gen_trigg
> {
> int rc = 0;
>
> - psy->online_trig_name = kmalloc(strlen(psy->name) + sizeof("-online"),
> - GFP_KERNEL);
> + psy->online_trig_name = kasprintf(GFP_KERNEL, "%s-online", psy->name);
> if (!psy->online_trig_name)
> goto online_failed;
>
> - strcpy(psy->online_trig_name, psy->name);
> - strcat(psy->online_trig_name, "-online");
> -
> led_trigger_register_simple(psy->online_trig_name, &psy->online_trig);
>
> goto success;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

--
Anton Vorontsov
email: [email protected]
backup email: [email protected]
irc://irc.freenode.net/bd2