2004-04-09 16:56:53

by Arjan van de Ven

[permalink] [raw]
Subject: framebuffer bugfix

Hi,

patch below fixes a thinko in the frame buffer drivers;
the code does

cursor.image.data = kmalloc(size, GFP_KERNEL);
....
cursor.mask = kmalloc(size, GFP_KERNEL);
....
if (copy_from_user(&cursor.image.data, sprite->image.data, size) ||
copy_from_user(cursor.mask, sprite->mask, size)) {
....

where it's clear that the & in the first copy_from_user is utterly bogus
since the destination is the content of the newly allocated buffer, and not
the pointer to it as the code does....




--- linux-2.6.5/drivers/video/fbmem.c~ 2004-04-09 18:51:01.626902984 +0200
+++ linux-2.6.5/drivers/video/fbmem.c 2004-04-09 18:51:01.626902984 +0200
@@ -911,7 +911,7 @@
return -ENOMEM;
}

- if (copy_from_user(&cursor.image.data, sprite->image.data, size) ||
+ if (copy_from_user(cursor.image.data, sprite->image.data, size) ||
copy_from_user(cursor.mask, sprite->mask, size)) {
kfree(cursor.image.data);
kfree(cursor.mask);