• Taras Chornyi's avatar
    net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin · 690cc863
    Taras Chornyi authored
    When CONFIG_IP_MULTICAST is not set and multicast ip is added to the device
    with autojoin flag or when multicast ip is deleted kernel will crash.
    
    steps to reproduce:
    
    ip addr add 224.0.0.0/32 dev eth0
    ip addr del 224.0.0.0/32 dev eth0
    
    or
    
    ip addr add 224.0.0.0/32 dev eth0 autojoin
    
    Unable to handle kernel NULL pointer dereference at virtual address 0000000000000088
     pc : _raw_write_lock_irqsave+0x1e0/0x2ac
     lr : lock_sock_nested+0x1c/0x60
     Call trace:
      _raw_write_lock_irqsave+0x1e0/0x2ac
      lock_sock_nested+0x1c/0x60
      ip_mc_config.isra.28+0x50/0xe0
      inet_rtm_deladdr+0x1a8/0x1f0
      rtnetlink_rcv_msg+0x120/0x350
      netlink_rcv_skb+0x58/0x120
      rtnetlink_rcv+0x14/0x20
      netlink_unicast+0x1b8/0x270
      netlink_sendmsg+0x1a0/0x3b0
      ____sys_sendmsg+0x248/0x290
      ___sys_sendmsg+0x80/0xc0
      __sys_sendmsg+0x68/0xc0
      __arm64_sys_sendmsg+0x20/0x30
      el0_svc_common.constprop.2+0x88/0x150
      do_el0_svc+0x20/0x80
     el0_sync_handler+0x118/0x190
      el0_sync+0x140/0x180
    
    Fixes: 93a714d6 ("multicast: Extend ip address command to enable multicast group join/leave on")
    Signed-off-by: default avatarTaras Chornyi <taras.chornyi@plvision.eu>
    Signed-off-by: default avatarVadym Kochan <vadym.kochan@plvision.eu>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    690cc863
devinet.c 68.1 KB