lkml.org 
[lkml]   [2017]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH review for 3.18 20/30] team: fix memory leaks
    Date
    From: Pan Bian <bianpan2016@163.com>

    [ Upstream commit 72ec0bc64b9a5d8e0efcb717abfc757746b101b7 ]

    In functions team_nl_send_port_list_get() and
    team_nl_send_options_get(), pointer skb keeps the return value of
    nlmsg_new(). When the call to genlmsg_put() fails, the memory is not
    freed(). This will result in memory leak bugs.

    Fixes: 9b00cf2d1024 ("team: implement multipart netlink messages for options transfers")
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    drivers/net/team/team.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
    index 16c580379e38..dae9dcb69c1a 100644
    --- a/drivers/net/team/team.c
    +++ b/drivers/net/team/team.c
    @@ -2331,8 +2331,10 @@ start_again:

    hdr = genlmsg_put(skb, portid, seq, &team_nl_family, flags | NLM_F_MULTI,
    TEAM_CMD_OPTIONS_GET);
    - if (!hdr)
    + if (!hdr) {
    + nlmsg_free(skb);
    return -EMSGSIZE;
    + }

    if (nla_put_u32(skb, TEAM_ATTR_TEAM_IFINDEX, team->dev->ifindex))
    goto nla_put_failure;
    @@ -2599,8 +2601,10 @@ start_again:

    hdr = genlmsg_put(skb, portid, seq, &team_nl_family, flags | NLM_F_MULTI,
    TEAM_CMD_PORT_LIST_GET);
    - if (!hdr)
    + if (!hdr) {
    + nlmsg_free(skb);
    return -EMSGSIZE;
    + }

    if (nla_put_u32(skb, TEAM_ATTR_TEAM_IFINDEX, team->dev->ifindex))
    goto nla_put_failure;
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-09-20 06:50    [W:4.105 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site