From 4dc396f356b2837f3295f459f2a5fb40bd178bb9 Mon Sep 17 00:00:00 2001 From: Jean-Francois Moine Date: Wed, 7 Jan 2009 10:09:27 +0100 Subject: gspca - stv06xx: Plug a memory leak in the pb0100 sensor driver. From: Erik Andren Priority: normal Signed-off-by: Erik Andren Signed-off-by: Jean-Francois Moine --- linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c | 6 ++++++ linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h | 2 ++ 2 files changed, 8 insertions(+) (limited to 'linux') diff --git a/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c b/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c index 7d2c41650..180f52c36 100644 --- a/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c +++ b/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c @@ -290,6 +290,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, diff --git a/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h b/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h index da7c13ed8..4de4fa5eb 100644 --- a/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h +++ b/linux/drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h @@ -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 -- cgit v1.2.3