lkml.org 
[lkml]   [2017]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 46/93] rtnetlink: allocate more memory for dev_set_mac_address()
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: WANG Cong <xiyou.wangcong@gmail.com>


    [ Upstream commit 153711f9421be5dbc973dc57a4109dc9d54c89b1 ]

    virtnet_set_mac_address() interprets mac address as struct
    sockaddr, but upper layer only allocates dev->addr_len
    which is ETH_ALEN + sizeof(sa_family_t) in this case.

    We lack a unified definition for mac address, so just fix
    the upper layer, this also allows drivers to interpret it
    to struct sockaddr freely.

    Reported-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/core/rtnetlink.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/net/core/rtnetlink.c
    +++ b/net/core/rtnetlink.c
    @@ -1965,7 +1965,8 @@ static int do_setlink(const struct sk_bu
    struct sockaddr *sa;
    int len;

    - len = sizeof(sa_family_t) + dev->addr_len;
    + len = sizeof(sa_family_t) + max_t(size_t, dev->addr_len,
    + sizeof(*sa));
    sa = kmalloc(len, GFP_KERNEL);
    if (!sa) {
    err = -ENOMEM;

    \
     
     \ /
      Last update: 2017-08-09 20:30    [W:4.266 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site