[S390] drivers/s390/char: Use kstrdup
authorJulia Lawall <julia@diku.dk>
Mon, 17 May 2010 08:00:22 +0000 (10:00 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Mon, 17 May 2010 08:00:18 +0000 (10:00 +0200)
Use kstrdup when the goal of an allocation is copy a string into the
allocated region.  Additionally drop the now unused variable len.

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

// <smpl>
@@
expression from,to;
expression flag,E1,E2;
statement S;
@@

-  to = kmalloc(strlen(from) + 1,flag);
+  to = kstrdup(from, flag);
   ... when != \(from = E1 \| to = E1 \)
   if (to==NULL || ...) S
   ... when != \(from = E2 \| to = E2 \)
-  strcpy(to, from);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/keyboard.c

index cb6bffe7141a948feb3f8f370f360eb941861991..24021fd7de2547161506d1733d9014f6cbcf3c30 100644 (file)
@@ -49,7 +49,7 @@ static unsigned char ret_diacr[NR_DEAD] = {
 struct kbd_data *
 kbd_alloc(void) {
        struct kbd_data *kbd;
-       int i, len;
+       int i;
 
        kbd = kzalloc(sizeof(struct kbd_data), GFP_KERNEL);
        if (!kbd)
@@ -72,11 +72,10 @@ kbd_alloc(void) {
                goto out_maps;
        for (i = 0; i < ARRAY_SIZE(func_table); i++) {
                if (func_table[i]) {
-                       len = strlen(func_table[i]) + 1;
-                       kbd->func_table[i] = kmalloc(len, GFP_KERNEL);
+                       kbd->func_table[i] = kstrdup(func_table[i],
+                                                    GFP_KERNEL);
                        if (!kbd->func_table[i])
                                goto out_func;
-                       memcpy(kbd->func_table[i], func_table[i], len);
                }
        }
        kbd->fn_handler =