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
This commit is contained in:
Joerg Wunsch 2001-12-30 17:12:28 +00:00
parent d0543e885a
commit dd966920a7

View File

@ -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 */