]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
netmem: fix skb_frag_address_safe with unreadable skbs
authorMina Almasry <almasrymina@google.com>
Thu, 19 Jun 2025 17:52:38 +0000 (17:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:41:17 +0000 (18:41 +0200)
[ Upstream commit 4672aec56d2e8edabcb74c3e2320301d106a377e ]

skb_frag_address_safe() needs a check that the
skb_frag_page exists check similar to skb_frag_address().

Cc: ap420073@gmail.com
Signed-off-by: Mina Almasry <almasrymina@google.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250619175239.3039329-1-almasrymina@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/skbuff.h

index 37f5c6099b1fbb01328f399c8d777590202c3387..67a906702830c1c6904142896a4d75228768d1bc 100644 (file)
@@ -3688,7 +3688,13 @@ static inline void *skb_frag_address(const skb_frag_t *frag)
  */
 static inline void *skb_frag_address_safe(const skb_frag_t *frag)
 {
-       void *ptr = page_address(skb_frag_page(frag));
+       struct page *page = skb_frag_page(frag);
+       void *ptr;
+
+       if (!page)
+               return NULL;
+
+       ptr = page_address(page);
        if (unlikely(!ptr))
                return NULL;