vgaarb: fix incorrect dereference of userspace pointer.
authorAndy Getzendanner <[email protected]>
Thu, 11 Feb 2010 04:04:48 +0000 (14:04 +1000)
committerDave Airlie <[email protected]>
Thu, 11 Feb 2010 04:04:48 +0000 (14:04 +1000)
commit77c1ff3982c6b36961725dd19e872a1c07df7f3b
tree679ddde451763655c6594ae18afa58fcfc7339b1
parent0a4583eb98af3fad7a8ab7d4915bd3ae179618c3
vgaarb: fix incorrect dereference of userspace pointer.

This patch corrects a userspace pointer dereference in the VGA arbiter
in 2.6.32.1.

copy_from_user() is used at line 822 to copy the contents of buf into
kbuf, but a call to strncmp() on line 964 uses buf rather than kbuf.  This
problem led to a GPF in strncmp() when X was started on my x86_32 systems.
 X triggered the behavior with a write of "target PCI:0000:01:00.0" to
/dev/vga_arbiter.

The patch has been tested against 2.6.32.1 and observed to correct the GPF
observed when starting X or manually writing the string "target
PCI:0000:01:00.0" to /dev/vga_arbiter.

Signed-off-by: Andy Getzendanner <[email protected]>
Cc: Jesse Barnes <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
drivers/gpu/vga/vgaarb.c