From: Joshua Colp Date: Tue, 13 Sep 2016 11:08:18 +0000 (-0400) Subject: res_pjsip: Don't assume a request will have any addresses. X-Git-Tag: 15.0.0-beta1~649^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3487b9360bc48c9bf777bef18f19f8a8fcc7a62;p=thirdparty%2Fasterisk.git res_pjsip: Don't assume a request will have any addresses. When performing DNS resolution the failover code present in res_pjsip currently assumes that a request will always have at least one viable address. In practice this is not true. A domain may be used that has no records. The code now checks that at least one address exists on the request which prevents looping. ASTERISK-26364 #close Change-Id: Ic0761b0264864acd85915c94d878a81624940f4c --- diff --git a/res/res_pjsip.c b/res/res_pjsip.c index 7bb10c07f0..8a9322258c 100644 --- a/res/res_pjsip.c +++ b/res/res_pjsip.c @@ -3584,7 +3584,7 @@ int ast_sip_failover_request(pjsip_tx_data *tdata) { pjsip_via_hdr *via; - if (tdata->dest_info.cur_addr == tdata->dest_info.addr.count - 1) { + if (!tdata->dest_info.addr.count || (tdata->dest_info.cur_addr == tdata->dest_info.addr.count - 1)) { /* No more addresses to try */ return 0; }