lkml.org 
[lkml]   [2012]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] net/core: Fix potential memory leak in dev_set_alias()
    Date
    Do not leak memory by updating pointer with potentially NULL realloc return value.

    Found by Linux Driver Verification project (linuxtesting.org).

    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    ---
    net/core/dev.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/net/core/dev.c b/net/core/dev.c
    index 0cb3fe8..3bcc5da 100644
    --- a/net/core/dev.c
    +++ b/net/core/dev.c
    @@ -1055,6 +1055,8 @@ rollback:
    */
    int dev_set_alias(struct net_device *dev, const char *alias, size_t len)
    {
    + char *new_ifalias;
    +
    ASSERT_RTNL();

    if (len >= IFALIASZ)
    @@ -1068,9 +1070,10 @@ int dev_set_alias(struct net_device *dev, const char *alias, size_t len)
    return 0;
    }

    - dev->ifalias = krealloc(dev->ifalias, len + 1, GFP_KERNEL);
    - if (!dev->ifalias)
    + new_ifalias = krealloc(dev->ifalias, len + 1, GFP_KERNEL);
    + if (!new_ifalias)
    return -ENOMEM;
    + dev->ifalias = new_ifalias;

    strlcpy(dev->ifalias, alias, len+1);
    return len;
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-08-08 13:22    [W:2.319 / U:0.412 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site