[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250619175239.3039329-1-almasrymina@google.com>
Date: Thu, 19 Jun 2025 17:52:38 +0000
From: Mina Almasry <almasrymina@...gle.com>
To: netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: Mina Almasry <almasrymina@...gle.com>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Simon Horman <horms@...nel.org>, ap420073@...il.com, Stanislav Fomichev <sdf@...ichev.me>
Subject: [PATCH net-next v2] netmem: fix skb_frag_address_safe with unreadable skbs
skb_frag_address_safe() needs a check that the
skb_frag_page exists check similar to skb_frag_address().
Cc: ap420073@...il.com
Signed-off-by: Mina Almasry <almasrymina@...gle.com>
Acked-by: Stanislav Fomichev <sdf@...ichev.me>
---
v2: https://lore.kernel.org/netdev/20250617210950.1338107-1-almasrymina@google.com/
- Move to net-next
- save return value of skb_frag_page
---
include/linux/skbuff.h | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 9508968cb300..4f6dcb37bae8 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3665,7 +3665,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;
base-commit: afc783fa0aab9cc093fbb04871bfda406480cf8d
--
2.50.0.rc2.701.gf1e915cc24-goog
Powered by blists - more mailing lists