From: Eric Dumazet Date: Mon, 17 May 2010 20:40:51 +0000 (+0000) Subject: tcp: tcp_md5_hash_skb_data() frag_list handling X-Git-Tag: v3.12-rc1~9497^2~740 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d7fd1b5747fff3bde92777bcaf705d98ae6f8b6f;p=kernel%2Fkernel-generic.git tcp: tcp_md5_hash_skb_data() frag_list handling tcp_md5_hash_skb_data() should handle skb->frag_list, and eventually recurse. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 6596b4f..49d0d2b 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -2999,6 +2999,7 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, const unsigned head_data_len = skb_headlen(skb) > header_len ? skb_headlen(skb) - header_len : 0; const struct skb_shared_info *shi = skb_shinfo(skb); + struct sk_buff *frag_iter; sg_init_table(&sg, 1); @@ -3013,6 +3014,10 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, return 1; } + skb_walk_frags(skb, frag_iter) + if (tcp_md5_hash_skb_data(hp, frag_iter, 0)) + return 1; + return 0; }