Messages in this thread Patch in this message | | | Date | Fri, 14 May 2010 23:03:51 +0200 (CEST) | From | Julia Lawall <> | Subject | Re: [PATCH 1/10] drivers/s390/char: Use kstrdup |
| |
From: Julia Lawall <julia@diku.dk>
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>
--- drivers/s390/char/keyboard.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff -u -p a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c --- a/drivers/s390/char/keyboard.c +++ b/drivers/s390/char/keyboard.c @@ -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 =
| |