diff options
| author | Eric Dumazet <[email protected]> | 2014-03-05 22:08:38 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2014-03-07 19:32:57 +0000 |
| commit | 219626924222b6b41bf2264896b34a6abaaeecf0 (patch) | |
| tree | da1dc3b24f282e705f32e317908afae415e506fc /net/ipv4/tcp_output.c | |
| parent | bonding: fix const in options processing (diff) | |
| download | kernel-219626924222b6b41bf2264896b34a6abaaeecf0.tar.gz kernel-219626924222b6b41bf2264896b34a6abaaeecf0.zip | |
tcp: do not leak non zero tstamp in output packets
Usage of skb->tstamp should remain private to TCP stack
(only set on packets on write queue, not on cloned ones)
Otherwise, packets given to loopback interface with a non null tstamp
can confuse netif_rx() / net_timestamp_check()
Other possibility would be to clear tstamp in loopback_xmit(),
as done in skb_scrub_packet()
Fixes: 740b0f1841f6 ("tcp: switch rtt estimations to usec resolution")
Signed-off-by: Eric Dumazet <[email protected]>
Reported-by: Willem de Bruijn <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index a02c884d4321..bc0fb0fc7552 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -882,6 +882,8 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, skb = skb_clone(skb, gfp_mask); if (unlikely(!skb)) return -ENOBUFS; + /* Our usage of tstamp should remain private */ + skb->tstamp.tv64 = 0; } inet = inet_sk(sk); |
