]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drivers/media/media-devnode: clear private_data before put_device()
authorMax Kellermann <max@duempel.org>
Mon, 21 Mar 2016 13:30:28 +0000 (10:30 -0300)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 28 Apr 2020 18:03:48 +0000 (19:03 +0100)
commit bf244f665d76d20312c80524689b32a752888838 upstream.

Callbacks invoked from put_device() may free the struct media_devnode
pointer, so any cleanup needs to be done before put_device().

Signed-off-by: Max Kellermann <max@duempel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/media/media-devnode.c

index a8cb52dc8c4ff953834fe4bc854cd406abf4721e..6c56aebd8db0ff488f4833364ce1d85737946c5c 100644 (file)
@@ -197,10 +197,11 @@ static int media_release(struct inode *inode, struct file *filp)
        if (mdev->fops->release)
                mdev->fops->release(filp);
 
+       filp->private_data = NULL;
+
        /* decrease the refcount unconditionally since the release()
           return value is ignored. */
        put_device(&mdev->dev);
-       filp->private_data = NULL;
        return 0;
 }