drivers/acpi: use kasprintf

kasprintf combines kmalloc and sprintf, and takes care of the size
calculation itself.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression a,flag;
expression list args;
statement S;
@@

  a =
-  \(kmalloc\|kzalloc\)(...,flag)
+  kasprintf(flag,args)
  <... when != a
  if (a == NULL || ...) S
  ...>
- sprintf(a,args);
// </smpl>

[akpm@linux-foundation.org: don't change handling of `count']
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Julia Lawall 2010-04-27 14:06:04 -07:00 committed by Len Brown
parent e40152ee1e
commit aeb834d95e

View File

@ -1007,11 +1007,11 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
result = acpi_video_init_brightness(device);
if (result)
return;
name = kzalloc(MAX_NAME_LEN, GFP_KERNEL);
name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
if (!name)
return;
count++;
sprintf(name, "acpi_video%d", count++);
memset(&props, 0, sizeof(struct backlight_properties));
props.max_brightness = device->brightness->count - 3;
device->backlight = backlight_device_register(name, NULL, device,
@ -1067,10 +1067,10 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
if (device->cap._DCS && device->cap._DSS) {
static int count;
char *name;
name = kzalloc(MAX_NAME_LEN, GFP_KERNEL);
name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
if (!name)
return;
sprintf(name, "acpi_video%d", count++);
count++;
device->output_dev = video_output_register(name,
NULL, device, &acpi_output_properties);
kfree(name);