diff options
author | Julia Lawall <julia@diku.dk> | 2009-12-17 18:27:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-17 18:45:30 -0500 |
commit | 0f05058531330854ff383237e1547044c67e5740 (patch) | |
tree | 874207002e578f24a44977bae456b147f6f8d80e /drivers | |
parent | 312ea07bf067d41b339473e696f9199245d762f3 (diff) |
drivers/video/via/viafbdev.c: correct code taking the size of a pointer
sizeof(viafb_gamma_table) is just the size of the pointer. This is changed
to the size used when calling kmalloc to initialize the pointer.
A simplified version of the semantic patch that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
expression *x;
expression f;
type T;
@@
*f(...,(T)x,...)
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Joseph Chan <JosephChan@via.com.tw>
Cc: Scott Fang <ScottFang@viatech.com.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/via/viafbdev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c index 10d8c4b4baeb..d8df17a7d5fc 100644 --- a/drivers/video/via/viafbdev.c +++ b/drivers/video/via/viafbdev.c | |||
@@ -680,7 +680,7 @@ static int viafb_ioctl(struct fb_info *info, u_int cmd, u_long arg) | |||
680 | if (!viafb_gamma_table) | 680 | if (!viafb_gamma_table) |
681 | return -ENOMEM; | 681 | return -ENOMEM; |
682 | if (copy_from_user(viafb_gamma_table, argp, | 682 | if (copy_from_user(viafb_gamma_table, argp, |
683 | sizeof(viafb_gamma_table))) { | 683 | 256 * sizeof(u32))) { |
684 | kfree(viafb_gamma_table); | 684 | kfree(viafb_gamma_table); |
685 | return -EFAULT; | 685 | return -EFAULT; |
686 | } | 686 | } |
@@ -694,7 +694,7 @@ static int viafb_ioctl(struct fb_info *info, u_int cmd, u_long arg) | |||
694 | return -ENOMEM; | 694 | return -ENOMEM; |
695 | viafb_get_gamma_table(viafb_gamma_table); | 695 | viafb_get_gamma_table(viafb_gamma_table); |
696 | if (copy_to_user(argp, viafb_gamma_table, | 696 | if (copy_to_user(argp, viafb_gamma_table, |
697 | sizeof(viafb_gamma_table))) { | 697 | 256 * sizeof(u32))) { |
698 | kfree(viafb_gamma_table); | 698 | kfree(viafb_gamma_table); |
699 | return -EFAULT; | 699 | return -EFAULT; |
700 | } | 700 | } |