diff options
author | Gilad Ben-Yossef <gilad@codefidence.com> | 2009-11-04 23:23:10 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-04 23:24:15 -0800 |
commit | 6a2a2d6bf8581216e08be15fcb563cfd6c430e1e (patch) | |
tree | 001dd331cb0ef37fbb0e84bb557aaee9e22d8fc3 | |
parent | 05eaade2782fb0c90d3034fd7a7d5a16266182bb (diff) | |
download | op-kernel-dev-6a2a2d6bf8581216e08be15fcb563cfd6c430e1e.zip op-kernel-dev-6a2a2d6bf8581216e08be15fcb563cfd6c430e1e.tar.gz |
tcp: Use defaults when no route options are available
Trying to parse the option of a SYN packet that we have
no route entry for should just use global wide defaults
for route entry options.
Signed-off-by: Gilad Ben-Yossef <gilad@codefidence.com>
Tested-by: Valdis.Kletnieks@vt.edu
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/dst.h | 2 | ||||
-rw-r--r-- | net/ipv4/tcp_input.c | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 39c4a59..387cb3c 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -113,7 +113,7 @@ dst_metric(const struct dst_entry *dst, int metric) static inline u32 dst_feature(const struct dst_entry *dst, u32 feature) { - return dst_metric(dst, RTAX_FEATURES) & feature; + return (dst ? dst_metric(dst, RTAX_FEATURES) & feature : 0); } static inline u32 dst_mtu(const struct dst_entry *dst) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index ba0eab6..be0c5bf 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -3704,8 +3704,6 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, struct tcphdr *th = tcp_hdr(skb); int length = (th->doff * 4) - sizeof(struct tcphdr); - BUG_ON(!estab && !dst); - ptr = (unsigned char *)(th + 1); opt_rx->saw_tstamp = 0; |