From f6f83a2e0b506167a560b374bcd5a781c10a7348 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 12 Jun 2008 12:36:59 +0000 Subject: Bug in srv_resolver: host_resolved value may exceed number of SRV records if there are more than A records in Additional Record section of the response for a single SRV target (thanks Ruud Klaver) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2006 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib-util/src/pjlib-util/srv_resolver.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'pjlib-util') diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c index ca5892d8..4683357d 100644 --- a/pjlib-util/src/pjlib-util/srv_resolver.c +++ b/pjlib-util/src/pjlib-util/srv_resolver.c @@ -285,8 +285,10 @@ static void build_server_entries(pj_dns_srv_resolver_job *query_job, if (pj_stricmp(&rr->name, &query_job->srv[j].target_name)==0) { unsigned cnt = query_job->srv[j].addr_cnt; query_job->srv[j].addr[cnt].s_addr = rr->rdata.a.ip_addr.s_addr; + /* Only increment host_resolved once per SRV record */ + if (query_job->srv[j].addr_cnt == 0) + ++query_job->host_resolved; ++query_job->srv[j].addr_cnt; - ++query_job->host_resolved; break; } } -- cgit v1.2.3