net: introduce skb_poison_list and use in kfree_skb_list
authorJesper Dangaard Brouer <brouer@redhat.com>
Fri, 3 Feb 2023 12:59:29 +0000 (13:59 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Feb 2023 09:56:38 +0000 (09:56 +0000)
commit9dde0cd3b10f63bc4100ebadc7e32275baabfa68
tree08f48b41359f74ea3e8b1af884de2cc21d5aa9c4
parent149e8fb06cd925c38cfeb14458480be0cbe3a099
net: introduce skb_poison_list and use in kfree_skb_list

First user of skb_poison_list is in kfree_skb_list_reason, to catch bugs
earlier like introduced in commit eedade12f4cb ("net: kfree_skb_list use
kmem_cache_free_bulk"). For completeness mentioned bug have been fixed in
commit f72ff8b81ebc ("net: fix kfree_skb_list use of skb_mark_not_on_list").

In case of a bug like mentioned commit we would have seen OOPS with:
 general protection fault, probably for non-canonical address 0xdead000000000870
And content of one the registers e.g. R13: dead000000000800

In this case skb->len is at offset 112 bytes (0x70) why fault happens at
 0x800+0x70 = 0x870

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/poison.h
include/linux/skbuff.h
net/core/skbuff.c