lkml.org 
[lkml]   [2019]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] wimax/i2400m: fix a memory leak bug
    Date
    In i2400m_barker_db_init(), 'options_orig' is allocated through kstrdup()
    to hold the original command line options. Then, the options are parsed.
    However, if an error occurs during the parsing process, 'options_orig' is
    not deallocated, leading to a memory leak bug. To fix this issue, free
    'options_orig' before returning the error.

    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    ---
    drivers/net/wimax/i2400m/fw.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c
    index e9fc168..6b36f6d 100644
    --- a/drivers/net/wimax/i2400m/fw.c
    +++ b/drivers/net/wimax/i2400m/fw.c
    @@ -342,6 +342,7 @@ int i2400m_barker_db_init(const char *_options)
    "a 32-bit number\n",
    __func__, token);
    result = -EINVAL;
    + kfree(options_orig);
    goto error_parse;
    }
    if (barker == 0) {
    @@ -350,8 +351,10 @@ int i2400m_barker_db_init(const char *_options)
    continue;
    }
    result = i2400m_barker_db_add(barker);
    - if (result < 0)
    + if (result < 0) {
    + kfree(options_orig);
    goto error_add;
    + }
    }
    kfree(options_orig);
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2019-08-15 20:06    [W:3.293 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site