diff options
author | David S. Miller <davem@davemloft.net> | 2016-11-15 10:54:36 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-15 10:54:36 -0500 |
commit | bb598c1b8c9bf56981927dcb8c0dc34b8ff95342 (patch) | |
tree | 69fe6d3bcdbf0acb76e42b144d8af5a0234ccdcb /net/ipv4/tcp_ipv4.c | |
parent | eb2ca35f1814dad3ca547261eedfbbd0d65a0efc (diff) | |
parent | e76d21c40bd6c67fd4e2c1540d77e113df962b4d (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Several cases of bug fixes in 'net' overlapping other changes in
'net-next-.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 6491b7c1f975..5555eb86e549 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1567,6 +1567,21 @@ bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb) | |||
1567 | } | 1567 | } |
1568 | EXPORT_SYMBOL(tcp_add_backlog); | 1568 | EXPORT_SYMBOL(tcp_add_backlog); |
1569 | 1569 | ||
1570 | int tcp_filter(struct sock *sk, struct sk_buff *skb) | ||
1571 | { | ||
1572 | struct tcphdr *th = (struct tcphdr *)skb->data; | ||
1573 | unsigned int eaten = skb->len; | ||
1574 | int err; | ||
1575 | |||
1576 | err = sk_filter_trim_cap(sk, skb, th->doff * 4); | ||
1577 | if (!err) { | ||
1578 | eaten -= skb->len; | ||
1579 | TCP_SKB_CB(skb)->end_seq -= eaten; | ||
1580 | } | ||
1581 | return err; | ||
1582 | } | ||
1583 | EXPORT_SYMBOL(tcp_filter); | ||
1584 | |||
1570 | /* | 1585 | /* |
1571 | * From tcp_input.c | 1586 | * From tcp_input.c |
1572 | */ | 1587 | */ |
@@ -1679,8 +1694,10 @@ process: | |||
1679 | 1694 | ||
1680 | nf_reset(skb); | 1695 | nf_reset(skb); |
1681 | 1696 | ||
1682 | if (sk_filter(sk, skb)) | 1697 | if (tcp_filter(sk, skb)) |
1683 | goto discard_and_relse; | 1698 | goto discard_and_relse; |
1699 | th = (const struct tcphdr *)skb->data; | ||
1700 | iph = ip_hdr(skb); | ||
1684 | 1701 | ||
1685 | skb->dev = NULL; | 1702 | skb->dev = NULL; |
1686 | 1703 | ||