vgaarb: fix "target=default" passing
authorKyle McMartin <kyle@redhat.com>
Tue, 16 Feb 2010 21:18:37 +0000 (16:18 -0500)
committerDave Airlie <airlied@redhat.com>
Fri, 19 Feb 2010 21:28:04 +0000 (07:28 +1000)
Commit 77c1ff3982c6b36961725dd19e872a1c07df7f3b fixed the userspace
pointer dereference, but introduced another bug pointed out by Eugene Teo
in RH bug #564264. Instead of comparing the point we were at in the string,
we instead compared the beginning of the string to "default".

Signed-off-by: Kyle McMartin <kyle@redhat.com>
Reported-by: Eugene Teo <eteo@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/vga/vgaarb.c

index 24b56dc5459730d47b6c7b606324ec13a64b5804..2f6cf69ecb394ce324c6a5c5090e5cbf046e1ccf 100644 (file)
@@ -961,7 +961,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
                remaining -= 7;
                pr_devel("client 0x%p called 'target'\n", priv);
                /* if target is default */
-               if (!strncmp(kbuf, "default", 7))
+               if (!strncmp(curr_pos, "default", 7))
                        pdev = pci_dev_get(vga_default_device());
                else {
                        if (!vga_pci_str_to_vars(curr_pos, remaining,