From 264fac8137513dc25f5e00bcab039df0fa0774f9 Mon Sep 17 00:00:00 2001 From: joerg Date: Sun, 30 Dec 2001 17:12:28 +0000 Subject: Fix a long-standing blatant bug where the operator precedence between & and && has been botched. This was likely the cause for some havoc with various negotiation cases of sppp in the past. Obtained from: NetBSD (rev 1.13) MFC after: 1 week --- sys/net/if_spppsubr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sys/net/if_spppsubr.c') diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c index a018500..040a390 100644 --- a/sys/net/if_spppsubr.c +++ b/sys/net/if_spppsubr.c @@ -2610,7 +2610,7 @@ sppp_lcp_tlu(struct sppp *sp) /* Send Up events to all started protos. */ for (i = 0, mask = 1; i < IDX_COUNT; i++, mask <<= 1) - if (sp->lcp.protos & mask && ((cps[i])->flags & CP_LCP) == 0) + if ((sp->lcp.protos & mask) && ((cps[i])->flags & CP_LCP) == 0) (cps[i])->Up(sp); /* notify low-level driver of state change */ @@ -2642,7 +2642,7 @@ sppp_lcp_tld(struct sppp *sp) * describes it. */ for (i = 0, mask = 1; i < IDX_COUNT; i++, mask <<= 1) - if (sp->lcp.protos & mask && ((cps[i])->flags & CP_LCP) == 0) { + if ((sp->lcp.protos & mask) && ((cps[i])->flags & CP_LCP) == 0) { (cps[i])->Down(sp); (cps[i])->Close(sp); } @@ -2735,7 +2735,7 @@ sppp_ncp_check(struct sppp *sp) int i, mask; for (i = 0, mask = 1; i < IDX_COUNT; i++, mask <<= 1) - if (sp->lcp.protos & mask && (cps[i])->flags & CP_NCP) + if ((sp->lcp.protos & mask) && (cps[i])->flags & CP_NCP) return 1; return 0; } @@ -5123,7 +5123,7 @@ sppp_phase_network(struct sppp *sp) /* Send Up events to all NCPs. */ for (i = 0, mask = 1; i < IDX_COUNT; i++, mask <<= 1) - if (sp->lcp.protos & mask && ((cps[i])->flags & CP_NCP)) + if ((sp->lcp.protos & mask) && ((cps[i])->flags & CP_NCP)) (cps[i])->Up(sp); /* if no NCP is starting, all this was in vain, close down */ -- cgit v1.1