V4L/DVB (10341): gspca - stv06xx: Plug a memory leak in the pb0100 sensor driver.
authorErik Andren <erik.andren@gmail.com>
Wed, 7 Jan 2009 09:09:27 +0000 (06:09 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:42:29 +0000 (12:42 -0300)
Signed-off-by: Erik Andren <erik.andren@gmail.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c
drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h

index ae2d04b..285221e 100644 (file)
@@ -268,6 +268,12 @@ out:
        return (err < 0) ? err : 0;
 }
 
+static void pb0100_disconnect(struct sd *sd)
+{
+       sd->sensor = NULL;
+       kfree(sd->sensor_priv);
+}
+
 /* FIXME: Sort the init commands out and put them into tables,
          this is only for getting the camera to work */
 /* FIXME: No error handling for now,
index da7c13e..4de4fa5 100644 (file)
@@ -114,6 +114,7 @@ static int pb0100_start(struct sd *sd);
 static int pb0100_init(struct sd *sd);
 static int pb0100_stop(struct sd *sd);
 static int pb0100_dump(struct sd *sd);
+static void pb0100_disconnect(struct sd *sd);
 
 /* V4L2 controls supported by the driver */
 static int pb0100_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
@@ -142,6 +143,7 @@ const struct stv06xx_sensor stv06xx_sensor_pb0100 = {
        .start = pb0100_start,
        .stop = pb0100_stop,
        .dump = pb0100_dump,
+       .disconnect = pb0100_disconnect,
 };
 
 #endif