Skip to content

Commit

Permalink
sctp: do not enable peer features if we can't do them.
Browse files Browse the repository at this point in the history
Do not enable peer features like addip and auth, if they
are administratively disabled localy.  If the peer resports
that he supports something that we don't, neither end can
use it so enabling it is pointless.  This solves a problem
when talking to a peer that has auth and addip enabled while
we do not.  Found by Andrei Pelinescu-Onciul <[email protected]>.

Signed-off-by: Vlad Yasevich <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Vlad Yasevich authored and davem330 committed Sep 18, 2008
1 parent a3028b8 commit 0ef46e2
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions net/sctp/sm_make_chunk.c
Original file line number Diff line number Diff line change
Expand Up @@ -1886,11 +1886,13 @@ static void sctp_process_ext_param(struct sctp_association *asoc,
/* if the peer reports AUTH, assume that he
* supports AUTH.
*/
asoc->peer.auth_capable = 1;
if (sctp_auth_enable)
asoc->peer.auth_capable = 1;
break;
case SCTP_CID_ASCONF:
case SCTP_CID_ASCONF_ACK:
asoc->peer.asconf_capable = 1;
if (sctp_addip_enable)
asoc->peer.asconf_capable = 1;
break;
default:
break;
Expand Down Expand Up @@ -2460,6 +2462,9 @@ static int sctp_process_param(struct sctp_association *asoc,
break;

case SCTP_PARAM_SET_PRIMARY:
if (!sctp_addip_enable)
goto fall_through;

addr_param = param.v + sizeof(sctp_addip_param_t);

af = sctp_get_af_specific(param_type2af(param.p->type));
Expand Down

0 comments on commit 0ef46e2

Please sign in to comment.