lkml.org 
[lkml]   [2019]   [Sep]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 43/60] ACPI: custom_method: fix memory leaks
    Date
    From: Wenwen Wang <wenwen@cs.uga.edu>

    [ Upstream commit 03d1571d9513369c17e6848476763ebbd10ec2cb ]

    In cm_write(), 'buf' is allocated through kzalloc(). In the following
    execution, if an error occurs, 'buf' is not deallocated, leading to memory
    leaks. To fix this issue, free 'buf' before returning the error.

    Fixes: 526b4af47f44 ("ACPI: Split out custom_method functionality into an own driver")
    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/acpi/custom_method.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
    index c68e72414a67a..435bd0ffc8c02 100644
    --- a/drivers/acpi/custom_method.c
    +++ b/drivers/acpi/custom_method.c
    @@ -48,8 +48,10 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
    if ((*ppos > max_size) ||
    (*ppos + count > max_size) ||
    (*ppos + count < count) ||
    - (count > uncopied_bytes))
    + (count > uncopied_bytes)) {
    + kfree(buf);
    return -EINVAL;
    + }

    if (copy_from_user(buf + (*ppos), user_buf, count)) {
    kfree(buf);
    @@ -69,6 +71,7 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
    add_taint(TAINT_OVERRIDDEN_ACPI_TABLE, LOCKDEP_NOW_UNRELIABLE);
    }

    + kfree(buf);
    return count;
    }

    --
    2.20.1
    \
     
     \ /
      Last update: 2019-09-22 21:01    [W:3.556 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site