• Harshit Mogalapalli's avatar
    net: netlink: af_netlink: Prevent empty skb by adding a check on len. · f123cffd
    Harshit Mogalapalli authored
    Adding a check on len parameter to avoid empty skb. This prevents a
    division error in netem_enqueue function which is caused when skb->len=0
    and skb->data_len=0 in the randomized corruption step as shown below.
    
    skb->data[prandom_u32() % skb_headlen(skb)] ^= 1<<(prandom_u32() % 8);
    
    Crash Report:
    [  343.170349] netdevsim netdevsim0 netdevsim3: set [1, 0] type 2 family
    0 port 6081 - 0
    [  343.216110] netem: version 1.3
    [  343.235841] divide error: 0000 [#1] PREEMPT SMP KASAN NOPTI
    [  343.236680] CPU: 3 PID: 4288 Comm: reproducer Not tainted 5.16.0-rc1+
    [  343.237569] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
    BIOS 1.11.0-2.el7 04/01/2014
    [  343.238707] RIP: 0010:netem_enqueue+0x1590/0x33c0 [sch_netem]
    [  343.239499] Code: 89 85 58 ff ff ff e8 5f 5d e9 d3 48 8b b5 48 ff ff
    ff 8b 8d 50 ff ff ff 8b 85 58 ff ff ff 48 8b bd 70 ff ff ff 31 d2 2b 4f
    74 <f7> f1 48 b8 00 00 00 00 00 fc ff df 49 01 d5 4c 89 e9 48 c1 e9 03
    [  343.241883]...
    f123cffd
af_netlink.c 68 KB