From: Miaohe Lin <linmia...@huawei.com>

The head_frag of skb would occupy one extra skb_frag_t. Take it into
account or out of bound write to skb frags may happen.

Signed-off-by: Miaohe Lin <linmia...@huawei.com>
---
 net/core/skbuff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 8a0c39e4ab0a..b489ba201fac 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -5154,7 +5154,7 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff 
*from,
                unsigned int offset;
 
                if (to_shinfo->nr_frags +
-                   from_shinfo->nr_frags >= MAX_SKB_FRAGS)
+                   from_shinfo->nr_frags + 1 >= MAX_SKB_FRAGS)
                        return false;
 
                if (skb_head_is_locked(from))
-- 
2.19.1

Reply via email to