net: fix pointer check in skb_pp_cow_data routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Sat, 17 Feb 2024 11:12:14 +0000 (12:12 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 Feb 2024 02:26:25 +0000 (18:26 -0800)
Properly check page pointer returned by page_pool_dev_alloc routine in
skb_pp_cow_data() for non-linear part of the original skb.

Reported-by: Julian Wiedmann <jwiedmann.dev@gmail.com>
Closes: https://lore.kernel.org/netdev/cover.1707729884.git.lorenzo@kernel.org/T/#m7d189b0015a7281ed9221903902490c03ed19a7a
Fixes: e6d5dbdd20aa ("xdp: add multi-buff support for xdp running in generic mode")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Link: https://lore.kernel.org/r/25512af3e09befa9dcb2cf3632bdc45b807cf330.1708167716.git.lorenzo@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/skbuff.c

index 1434c42..b9de3ee 100644 (file)
@@ -968,7 +968,7 @@ int skb_pp_cow_data(struct page_pool *pool, struct sk_buff **pskb,
                truesize = size;
 
                page = page_pool_dev_alloc(pool, &page_off, &truesize);
-               if (!data) {
+               if (!page) {
                        consume_skb(nskb);
                        return -ENOMEM;
                }