summaryrefslogtreecommitdiff
path: root/drivers/net/can
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-12-22 22:39:59 +0300
committerDavid S. Miller <davem@davemloft.net>2010-12-22 22:39:59 +0300
commitee09b3c1cff0335137dc1b146488e4352f640f13 (patch)
tree4f21be5938205963ab73f8ca2ebdd0f4a65f8b17 /drivers/net/can
parent503b1a529a6b62b31904bab4699752c523cf76b2 (diff)
downloadlinux-ee09b3c1cff0335137dc1b146488e4352f640f13.tar.xz
sfq: fix sfq class stats handling
sfq_walk() runs without qdisc lock. By the time it selects a non empty hash slot and sfq_dump_class_stats() is run (with lock held), slot might have been freed : We then access q->slots[SFQ_EMPTY_SLOT], out of bounds, and crash in slot_queue_walk() On previous kernels, bug is here but out of bounds qs[SFQ_DEPTH] and allot[SFQ_DEPTH] are located in struct sfq_sched_data, so no illegal memory access happens, only possibly wrong data reported to user. Also, slot_dequeue_tail() should make sure slot skb chain is correctly terminated, or sfq_dump_class_stats() can access freed skbs. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/can')
0 files changed, 0 insertions, 0 deletions