summary refs log tree commit diff
path: root/mm/debug-pagealloc.c
diff options
context:
space:
mode:
authorNishank Trivedi <nistrive@cisco.com>2012-09-12 13:32:49 +0000
committerDavid S. Miller <davem@davemloft.net>2012-09-13 17:10:00 -0400
commit6af773e786ad617b0264ebe06ba60675c01f3e51 (patch)
treedacac8780f7e78d8c634b8029235a025389e361d /mm/debug-pagealloc.c
parent7b5342d9026d537cbc01fd30b7cd9bac9b07b5ad (diff)
downloadlinux-6af773e786ad617b0264ebe06ba60675c01f3e51.tar.gz
pktgen: fix crash with vlan and packet size less than 46
If vlan option is being specified in the pktgen and packet size
being requested is less than 46 bytes, despite being illogical
request, pktgen should not crash the kernel.

BUG: unable to handle kernel paging request at ffff88021fb82000
Process kpktgend_0 (pid: 1184, threadinfo ffff880215f1a000, task ffff880218544530)
Call Trace:
[<ffffffffa0637cd2>] ? pktgen_finalize_skb+0x222/0x300 [pktgen]
[<ffffffff814f0084>] ? build_skb+0x34/0x1c0
[<ffffffffa0639b11>] pktgen_thread_worker+0x5d1/0x1790 [pktgen]
[<ffffffffa03ffb10>] ? igb_xmit_frame_ring+0xa30/0xa30 [igb]
[<ffffffff8107ba20>] ? wake_up_bit+0x40/0x40
[<ffffffff8107ba20>] ? wake_up_bit+0x40/0x40
[<ffffffffa0639540>] ? spin+0x240/0x240 [pktgen]
[<ffffffff8107b4e3>] kthread+0x93/0xa0
[<ffffffff81615de4>] kernel_thread_helper+0x4/0x10
[<ffffffff8107b450>] ? flush_kthread_worker+0x80/0x80
[<ffffffff81615de0>] ? gs_change+0x13/0x13

The root cause of why pktgen is not able to handle this case is due
to comparison of signed (datalen) and unsigned data (sizeof), which
eventually passes a huge number to skb_put().

Signed-off-by: Nishank Trivedi <nistrive@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'mm/debug-pagealloc.c')
0 files changed, 0 insertions, 0 deletions