netfilter: nf_ct_tcp: wrong multiplication of TCPOLEN_TSTAMP_ALIGNED in tcp_sack skips fastpath
The wrong multiplication of TCPOLEN_TSTAMP_ALIGNED by 4 skips the fast path for the timestamp-only option. Bug reported by Michael M. Builov (netfilter bugzilla #738). Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
Родитель
4a5cc84ae7
Коммит
bb9fc37358
|
@ -447,7 +447,7 @@ static void tcp_sack(const struct sk_buff *skb, unsigned int dataoff,
|
||||||
BUG_ON(ptr == NULL);
|
BUG_ON(ptr == NULL);
|
||||||
|
|
||||||
/* Fast path for timestamp-only option */
|
/* Fast path for timestamp-only option */
|
||||||
if (length == TCPOLEN_TSTAMP_ALIGNED*4
|
if (length == TCPOLEN_TSTAMP_ALIGNED
|
||||||
&& *(__be32 *)ptr == htonl((TCPOPT_NOP << 24)
|
&& *(__be32 *)ptr == htonl((TCPOPT_NOP << 24)
|
||||||
| (TCPOPT_NOP << 16)
|
| (TCPOPT_NOP << 16)
|
||||||
| (TCPOPT_TIMESTAMP << 8)
|
| (TCPOPT_TIMESTAMP << 8)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче