IPVS: precedence bug in ip_vs_sync_switch_mode()
authorDan Carpenter <error27@gmail.com>
Mon, 7 Feb 2011 08:38:55 +0000 (11:38 +0300)
committerSimon Horman <horms@verge.net.au>
Mon, 7 Feb 2011 11:40:00 +0000 (20:40 +0900)
'!' has higher precedence than '&'.  IP_VS_STATE_MASTER is 0x1 so
the original code is equivelent to if (!ipvs->sync_state) ...

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Hans Schillstrom <hans.schillstrom@ericsson.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
net/netfilter/ipvs/ip_vs_sync.c

index 2a2a836..d1b7298 100644 (file)
@@ -392,7 +392,7 @@ void ip_vs_sync_switch_mode(struct net *net, int mode)
 {
        struct netns_ipvs *ipvs = net_ipvs(net);
 
-       if (!ipvs->sync_state & IP_VS_STATE_MASTER)
+       if (!(ipvs->sync_state & IP_VS_STATE_MASTER))
                return;
        if (mode == ipvs->sysctl_sync_ver || !ipvs->sync_buff)
                return;