diff options
author | Erwin Jansen <jansene@google.com> | 2021-06-30 07:29:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-06-30 07:29:26 +0000 |
commit | 059cdc5996938f5f6b5343b6c969c12098275587 (patch) | |
tree | 6eacaffe4bebf8e00c290c1e1839e084b0c52e88 /third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c | |
parent | 97e54a7e73c7b24e464ef06ef3c3b3716f21bb15 (diff) | |
parent | 16be34ae72cdb525c88c2b31b21b976f35fe36d8 (diff) | |
download | webrtc-059cdc5996938f5f6b5343b6c969c12098275587.tar.gz |
Merge "Merge upstream-master and enable ARM64" into emu-master-devemu-31-stable-releaseemu-31-release
Diffstat (limited to 'third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c')
-rwxr-xr-x | third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c b/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c index d30019b22a..d1e84daad5 100755 --- a/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c +++ b/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c @@ -7533,7 +7533,7 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m, break; } phdr = sctp_get_next_param(m, offset, ¶m_buf, - sizeof(param_buf)); + sizeof(param_buf)); } /* Now check to see if we need to purge any addresses */ TAILQ_FOREACH_SAFE(net, &stcb->asoc.nets, sctp_next, nnet) { @@ -7543,11 +7543,15 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m, /* remove and free it */ stcb->asoc.numnets--; TAILQ_REMOVE(&stcb->asoc.nets, net, sctp_next); - sctp_free_remote_addr(net); + if (net == stcb->asoc.alternate) { + sctp_free_remote_addr(stcb->asoc.alternate); + stcb->asoc.alternate = NULL; + } if (net == stcb->asoc.primary_destination) { stcb->asoc.primary_destination = NULL; sctp_select_primary_destination(stcb); } + sctp_free_remote_addr(net); } } if ((stcb->asoc.ecn_supported == 1) && |