From: Sebastien Duthil Date: Thu, 14 Oct 2021 15:15:30 +0000 (-0400) Subject: main/stun.c: fix crash upon STUN request timeout X-Git-Tag: 16.23.0-rc1~82 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe0b5aed7beef3a703d6b6585cd2ab4ab2d5e760;p=thirdparty%2Fasterisk.git main/stun.c: fix crash upon STUN request timeout Some ast_stun_request users do not provide a destination address when sending to a connection-mode socket. ASTERISK-29691 Change-Id: Idd9114c3380216ba48abfc3c68619e79ad37defc --- diff --git a/main/stun.c b/main/stun.c index 4e9dac18af..7a8e0e5f4a 100644 --- a/main/stun.c +++ b/main/stun.c @@ -239,17 +239,24 @@ static void append_attr_address(struct stun_attr **attr, int attrval, struct soc static void handle_stun_timeout(int retry, struct sockaddr_in *dst) { + char *stun_destination = ""; + if (dst) { + ast_asprintf(&stun_destination, "to '%s' ", ast_inet_ntoa(dst->sin_addr)); + } if (retry < STUN_MAX_RETRIES) { ast_log(LOG_NOTICE, - "Attempt %d to send STUN request to '%s' timed out.", + "Attempt %d to send STUN request %stimed out.\n", retry, - ast_inet_ntoa(dst->sin_addr)); + stun_destination); } else { ast_log(LOG_WARNING, - "Attempt %d to send STUN request to '%s' timed out." + "Attempt %d to send STUN request %stimed out. " "Check that the server address is correct and reachable.\n", retry, - ast_inet_ntoa(dst->sin_addr)); + stun_destination); + } + if (dst) { + ast_free(stun_destination); } }