staging: most: fix mbo leak
authorChristian Gromm <christian.gromm@microchip.com>
Tue, 22 Dec 2015 09:52:47 +0000 (10:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 01:34:58 +0000 (17:34 -0800)
This patch fixes a potential MBO leak in case function aim_read()
exits right after the MBO has been fetched from kfifo and before
it has been saved to the variable stacked_mbo.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/aim-cdev/cdev.c

index 6ee4eb2..86194ce 100644 (file)
@@ -237,6 +237,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset)
                                              (!channel->dev))))
                        return -ERESTARTSYS;
        }
+       channel->stacked_mbo = mbo;
 
 start_copy:
        /* make sure we don't submit to gone devices */
@@ -258,7 +259,6 @@ start_copy:
 
        if (count < mbo->processed_length) {
                channel->mbo_offs = copied;
-               channel->stacked_mbo = mbo;
        } else {
                most_put_mbo(mbo);
                channel->mbo_offs = 0;