drivers/input/evdev.c: don't kfree() a vmalloc address
authorAndrew Morton <[email protected]>
Tue, 2 Dec 2014 23:59:31 +0000 (15:59 -0800)
committerLinus Torvalds <[email protected]>
Wed, 3 Dec 2014 17:35:38 +0000 (09:35 -0800)
If kzalloc() failed and then evdev_open_device() fails, evdev_open()
will pass a vmalloc'ed pointer to kfree.

This might fix https://bugzilla.kernel.org/show_bug.cgi?id=88401, where
there was a crash in kfree().

Reported-by: Christian Casteyde <[email protected]>
Belatedly-Acked-by: Dmitry Torokhov <[email protected]>
Cc: Henrik Rydberg <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/input/evdev.c

index bc203485716d870205a22d38add99ad6c1a9ea1e..8afa28e4570ed099bb3fb9fc4b2d7e1c1a5ba9d6 100644 (file)
@@ -421,7 +421,7 @@ static int evdev_open(struct inode *inode, struct file *file)
 
  err_free_client:
        evdev_detach_client(evdev, client);
-       kfree(client);
+       kvfree(client);
        return error;
 }