summaryrefslogtreecommitdiff
path: root/drivers/media/usb/gspca/gspca.h
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil-cisco@xs4all.nl>2021-04-08 13:31:20 +0300
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-04-09 14:19:38 +0300
commit4f4e6644cd876c844cdb3bea2dd7051787d5ae25 (patch)
treea938682e10b0496eac7d6c63e7a34c24f3b73fbe /drivers/media/usb/gspca/gspca.h
parent98965af1ebc3a652a597cee902f462f496ef9e11 (diff)
downloadlinux-4f4e6644cd876c844cdb3bea2dd7051787d5ae25.tar.xz
media: gscpa/stv06xx: fix memory leak
For two of the supported sensors the stv06xx driver allocates memory which is stored in sd->sensor_priv. This memory is freed on a disconnect, but if the probe() fails, then it isn't freed and so this leaks memory. Add a new probe_error() op that drivers can use to free any allocated memory in case there was a probe failure. Thanks to Pavel Skripkin <paskripkin@gmail.com> for discovering the cause of the memory leak. Reported-and-tested-by: syzbot+e7f4c64a4248a0340c37@syzkaller.appspotmail.com Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/usb/gspca/gspca.h')
-rw-r--r--drivers/media/usb/gspca/gspca.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/usb/gspca/gspca.h b/drivers/media/usb/gspca/gspca.h
index b0ced2e14006..a6554d5e9e1a 100644
--- a/drivers/media/usb/gspca/gspca.h
+++ b/drivers/media/usb/gspca/gspca.h
@@ -105,6 +105,7 @@ struct sd_desc {
cam_cf_op config; /* called on probe */
cam_op init; /* called on probe and resume */
cam_op init_controls; /* called on probe */
+ cam_v_op probe_error; /* called if probe failed, do cleanup here */
cam_op start; /* called on stream on after URBs creation */
cam_pkt_op pkt_scan;
/* optional operations */