diff options
| author | Mina Almasry <almasrymina@google.com> | 2025-06-19 20:52:38 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-08-28 17:25:57 +0300 |
| commit | 864cf44e8c0aad59594ccdcd2a31be80b8a52e6b (patch) | |
| tree | b62f73afc7535a49b06e0ef1f32585dfe7a4029e /include/linux | |
| parent | 40c1baf8da2f3b81d7871faa2743010c89048ada (diff) | |
| download | linux-864cf44e8c0aad59594ccdcd2a31be80b8a52e6b.tar.xz | |
netmem: fix skb_frag_address_safe with unreadable skbs
[ 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>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/skbuff.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 8014a335414e..9a04a188b9f8 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -3495,7 +3495,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; |
