res_rtp_asterisk: Avoid close the rtp/rtcp fd twice.

When RTCP-MUX enabled. rtp->s is the same as rtcp->s, check this before
close the file descriptor. Close the FD twice will hangs the asterisk
under heavy load.

ASTERISK-27299 #close
Reported-by: Aaron An
Tested-by: AaronAn

Change-Id: I870a072d73fd207463ac116ef97100addbc0820a
certified/13.21
Aaron An 8 years ago committed by Corey Farrell
parent dba037d422
commit c38b750810

@ -3247,7 +3247,9 @@ static int ast_rtp_destroy(struct ast_rtp_instance *instance)
* entry at this point since it holds a reference to the
* RTP instance while it's active.
*/
close(rtp->rtcp->s);
if (rtp->rtcp->s > -1 && rtp->s != rtp->rtcp->s) {
close(rtp->rtcp->s);
}
ast_free(rtp->rtcp->local_addr_str);
ast_free(rtp->rtcp);
}

Loading…
Cancel
Save