Patch "stm class: Fix device leak in open error path" has been added to the 4.9-stable tree
This is a note to let you know that I've just added the patch titled
stm class: Fix device leak in open error path
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
stm-class-fix-device-leak-in-open-error-path.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
a0ebf519b8a2666438d999c62995618c710573e5Mon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Fri, 18 Nov 2016 14:17:31 +0200
Subject: stm class: Fix device leak in open error path
From: Johan Hovold <[email protected]>
commit a0ebf519b8a2666438d999c62995618c710573e5 upstream.
Make sure to drop the reference taken by class_find_device() also on allocation errors in open().
--- drivers/hwtracing/stm/core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/hwtracing/stm/core.c +5 -3
@@ -361,7 +361,7 @@ static int stm_char_open(struct inode *istruct stm_file *stmf;struct device *dev;unsigned int major =imajor (inode); -int err = -ENODEV ; +int err = -ENOMEM ; dev =class_find_device (&stm_class,NULL , &major, major_match);if (!dev)
@@ -369,8 +369,9 @@ static int stm_char_open(struct inode *i stmf =kzalloc (sizeof (*stmf),GFP_KERNEL );if (!stmf) -return -ENOMEM ; + goto err_put_device; + err = -ENODEV ;stm_output_init (&stmf->output); stmf->stm =to_stm_device (dev);
@@ -382,9 +383,10 @@ static int stm_char_open(struct inode *ireturn nonseekable_open (inode, file); err_free: +kfree (stmf); +err_put_device:/* matches class_find_device() above */ put_device (dev); -kfree (stmf);return err; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/stm-class-fix-device-leak-in-open-error-path.patch