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:
parent
d0543e885a
commit
dd966920a7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=88706
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user