Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tcp: Always set options to 0 before calling tcp_established_options

tcp_established_options assumes opts->options is 0 before calling,
as it read modify writes it.

For the tcp_current_mss() case the opts structure is not zeroed,
so this can be done with uninitialized values.

This is ok, because ->options is not read in this path.
But it's still better to avoid the operation on the uninitialized
field. This shuts up a static code analyzer, and presumably
may help the optimizer.

Cc: netdev@vger.kernel.org
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Andi Kleen and committed by
David S. Miller
5843ef42 58e4e1f6

+2
+2
net/ipv4/tcp_output.c
··· 637 637 unsigned int size = 0; 638 638 unsigned int eff_sacks; 639 639 640 + opts->options = 0; 641 + 640 642 #ifdef CONFIG_TCP_MD5SIG 641 643 *md5 = tp->af_specific->md5_lookup(sk, sk); 642 644 if (unlikely(*md5)) {