security: avoid calling a NULL function pointer in drivers/video/tvaudio.c
authorArjan van de Ven <arjan@linux.intel.com>
Sat, 11 Oct 2008 04:16:12 +0000 (21:16 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 11 Oct 2008 16:54:07 +0000 (09:54 -0700)
NULL function pointers are very bad security wise. This one got caught by
kerneloops.org quite a few times, so it's happening in the field....

Fix is simple, check the function pointer for NULL, like 6 other places
in the same function are already doing.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/media/video/tvaudio.c

index 463680b13289c6515d658225b8711f6e39c26caf..b59e47272abfc292493e65bf66a0d2fbdda56f62 100644 (file)
@@ -1792,7 +1792,7 @@ static int chip_command(struct i2c_client *client,
                break;
        case VIDIOC_S_FREQUENCY:
                chip->mode = 0; /* automatic */
-               if (desc->checkmode) {
+               if (desc->checkmode && desc->setmode) {
                        desc->setmode(chip,V4L2_TUNER_MODE_MONO);
                        if (chip->prevmode != V4L2_TUNER_MODE_MONO)
                                chip->prevmode = -1; /* reset previous mode */