lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 28 Nov 2016 19:15:13 -0700 From: Shuah Khan <shuahkh@....samsung.com> To: mchehab@...nel.org, mkrufky@...uxtv.org, klock.android@...il.com, elfring@...rs.sourceforge.net, max@...mpel.org, hans.verkuil@...co.com, javier@....samsung.com, chehabrafael@...il.com, sakari.ailus@...ux.intel.com, laurent.pinchart+renesas@...asonboard.com Cc: Shuah Khan <shuahkh@....samsung.com>, linux-media@...r.kernel.org, linux-kernel@...r.kernel.org Subject: [PATCH 1/2] media: au0828 fix to protect enable/disable source set and clear Protect enable/disable source set and clear to avoid races with callers. There is a possibility clear could occur while dvb-core and v4l2 try to access these handlers. Signed-off-by: Shuah Khan <shuahkh@....samsung.com> --- drivers/media/usb/au0828/au0828-core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c index bf53553..a1f696a 100644 --- a/drivers/media/usb/au0828/au0828-core.c +++ b/drivers/media/usb/au0828/au0828-core.c @@ -153,9 +153,11 @@ static void au0828_unregister_media_device(struct au0828_dev *dev) } /* clear enable_source, disable_source */ + mutex_lock(&mdev->graph_mutex); dev->media_dev->source_priv = NULL; dev->media_dev->enable_source = NULL; dev->media_dev->disable_source = NULL; + mutex_unlock(&mdev->graph_mutex); media_device_unregister(dev->media_dev); media_device_cleanup(dev->media_dev); @@ -549,9 +551,11 @@ static int au0828_media_device_register(struct au0828_dev *dev, return ret; } /* set enable_source */ + mutex_lock(&dev->media_dev->graph_mutex); dev->media_dev->source_priv = (void *) dev; dev->media_dev->enable_source = au0828_enable_source; dev->media_dev->disable_source = au0828_disable_source; + mutex_unlock(&dev->media_dev->graph_mutex); #endif return 0; } -- 2.7.4
Powered by blists - more mailing lists