• Xin Long's avatar
    tipc: fix the msg->req tlv len check in tipc_nl_compat_name_table_dump_header · 1c075b19
    Xin Long authored
    This is a follow-up for commit 974cb0e3 ("tipc: fix uninit-value
    in tipc_nl_compat_name_table_dump") where it should have type casted
    sizeof(..) to int to work when TLV_GET_DATA_LEN() returns a negative
    value.
    
    syzbot reported a call trace because of it:
    
      BUG: KMSAN: uninit-value in ...
       tipc_nl_compat_name_table_dump+0x841/0xea0 net/tipc/netlink_compat.c:934
       __tipc_nl_compat_dumpit+0xab2/0x1320 net/tipc/netlink_compat.c:238
       tipc_nl_compat_dumpit+0x991/0xb50 net/tipc/netlink_compat.c:321
       tipc_nl_compat_recv+0xb6e/0x1640 net/tipc/netlink_compat.c:1324
       genl_family_rcv_msg_doit net/netlink/genetlink.c:731 [inline]
       genl_family_rcv_msg net/netlink/genetlink.c:775 [inline]
       genl_rcv_msg+0x103f/0x1260 net/netlink/genetlink.c:792
       netlink_rcv_skb+0x3a5/0x6c0 net/netlink/af_netlink.c:2501
       genl_rcv+0x3c/0x50 net/netlink/genetlink.c:803
       netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
       netlink_unicast+0xf3b/0x1270 net/netlink/af_netlink.c:1345
       netlink_sendmsg+0x1288/0x1440 net/netlink/af_netlink.c:1921
       sock_sendmsg_nosec net/socket.c:714 [inline]
       sock_sendmsg net/socket.c:734 [inline]
    
    Reported-by: syzbot+e5dbaaa238680ce206ea@syzkaller.appspotmail.com
    Fixes: 974cb0e3 ("tipc: fix uninit-value in tipc_nl_compat_name_table_dump")
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Link: https://lore.kernel.org/r/ccd6a7ea801b15aec092c3b532a883b4c5708695.1667594933.git.lucien.xin@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    1c075b19
netlink_compat.c 34.7 KB