sony-laptop: fix early NULL pointer dereference
authorMattia Dongili <malattia@linux.it>
Sat, 2 Apr 2011 10:00:44 +0000 (19:00 +0900)
committerMatthew Garrett <mjg@redhat.com>
Mon, 4 Apr 2011 16:51:13 +0000 (12:51 -0400)
The SNC acpi driver could get early notifications before it fully
initializes and that could lead to dereferencing the sony_nc_handles
structure pointer that is still NULL at that stage.
Make sure we return early from the handle lookup function in these
cases.

Signed-off-by: Mattia Dongili <malattia@linux.it>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/sony-laptop.c

index e642f5f295046edf07f9d16aed5bc26f5dde8731..33c3b8c066eebde2eb591b53fe06d5e249005255 100644 (file)
@@ -808,6 +808,11 @@ static int sony_nc_handles_cleanup(struct platform_device *pd)
 static int sony_find_snc_handle(int handle)
 {
        int i;
+
+       /* not initialized yet, return early */
+       if (!handles)
+               return -1;
+
        for (i = 0; i < 0x10; i++) {
                if (handles->cap[i] == handle) {
                        dprintk("found handle 0x%.4x (offset: 0x%.2x)\n",