rps: flow_dissector: Fix uninitialized flow_keys used in __skb_get_hash possibly
authorGao Feng <fgao@ikuai8.com>
Wed, 31 Aug 2016 06:15:05 +0000 (14:15 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Sep 2016 05:45:03 +0000 (22:45 -0700)
commit635c223cfa05af9523146b2f37e119d945f449ae
tree836a3ec0989ac301c54c800a08331d7b2a48b1da
parent28b346cbc0715ae45b2814d857f1d8a7e6817ed8
rps: flow_dissector: Fix uninitialized flow_keys used in __skb_get_hash possibly

The original codes depend on that the function parameters are evaluated from
left to right. But the parameter's evaluation order is not defined in C
standard actually.

When flow_keys_have_l4(&keys) is invoked before ___skb_get_hash(skb, &keys,
hashrnd) with some compilers or environment, the keys passed to
flow_keys_have_l4 is not initialized.

Fixes: 6db61d79c1e1 ("flow_dissector: Ignore flow dissector return value from ___skb_get_hash")

Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Gao Feng <fgao@ikuai8.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/flow_dissector.c