summaryrefslogtreecommitdiff
path: root/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch')
-rw-r--r--third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch112
1 files changed, 0 insertions, 112 deletions
diff --git a/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch b/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch
deleted file mode 100644
index dc03cbc20..000000000
--- a/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From d9d52f005f6d0242ea84e7c59ad6b25f052c8485 Mon Sep 17 00:00:00 2001
-From: Richard Mudgett <rmudgett@digium.com>
-Date: Mon, 20 Feb 2017 12:05:32 -0600
-Subject: [PATCH 3/5] r5559 svn backport Fix to resolve DNS SRV crashes.
-
-Re #1994 (misc): Don't try to resolve a DNS SRV query that is already considered resolved.
-Thanks to Richard Mudgett for the patch.
-
-srv_resolver.c: Don't try to send query if already considered resolved.
-
-* In resolve_hostnames() don't try to resolve a query that is already
-considered resolved.
-
-* In resolve_hostnames() fix DNS typo in comments.
-
-* In build_server_entries() move a common expression assigning to cnt
-earlier.
-
-sip_transport.c: Fix tdata object name to actually contain the pointer.
-
-It helps if the logs referencing a tdata object buffer actually have
-a name that includes the correct pointer as part of the name. Also
-since the tdata has its own pool it helps if any logs referencing the
-pool have the same name as the tdata object. This change brings tdata
-logging in line with how tsx objects are named.
----
- pjlib-util/src/pjlib-util/srv_resolver.c | 18 +++++++++++++-----
- pjsip/src/pjsip/sip_transport.c | 3 ++-
- 2 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c
-index 8a2f7e1..84ad3f6 100644
---- a/pjlib-util/src/pjlib-util/srv_resolver.c
-+++ b/pjlib-util/src/pjlib-util/srv_resolver.c
-@@ -407,8 +407,9 @@ static void build_server_entries(pj_dns_srv_async_query *query_job,
- for (i=0; i<query_job->srv_cnt; ++i) {
- pj_in_addr addr;
- pj_in6_addr addr6;
-+ unsigned cnt = query_job->srv[i].addr_cnt;
-
-- if (query_job->srv[i].addr_cnt != 0) {
-+ if (cnt != 0) {
- /* IP address already resolved */
- continue;
- }
-@@ -417,7 +418,6 @@ static void build_server_entries(pj_dns_srv_async_query *query_job,
- pj_inet_pton(pj_AF_INET(), &query_job->srv[i].target_name,
- &addr) == PJ_SUCCESS)
- {
-- unsigned cnt = query_job->srv[i].addr_cnt;
- pj_sockaddr_init(pj_AF_INET(), &query_job->srv[i].addr[cnt],
- NULL, query_job->srv[i].port);
- query_job->srv[i].addr[cnt].ipv4.sin_addr = addr;
-@@ -427,7 +427,6 @@ static void build_server_entries(pj_dns_srv_async_query *query_job,
- pj_inet_pton(pj_AF_INET6(), &query_job->srv[i].target_name,
- &addr6) == PJ_SUCCESS)
- {
-- unsigned cnt = query_job->srv[i].addr_cnt;
- pj_sockaddr_init(pj_AF_INET6(), &query_job->srv[i].addr[cnt],
- NULL, query_job->srv[i].port);
- query_job->srv[i].addr[cnt].ipv6.sin6_addr = addr6;
-@@ -480,6 +479,15 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job)
- for (i=0; i<query_job->srv_cnt; ++i) {
- struct srv_target *srv = &query_job->srv[i];
-
-+ if (srv->addr_cnt != 0) {
-+ /*
-+ * This query is already counted as resolved because of the
-+ * additional records in the SRV response or the target name
-+ * is an IP address exception in build_server_entries().
-+ */
-+ continue;
-+ }
-+
- PJ_LOG(5, (query_job->objname,
- "Starting async DNS A query_job for %.*s",
- (int)srv->target_name.slen,
-@@ -493,7 +501,7 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job)
-
- status = PJ_SUCCESS;
-
-- /* Start DNA A record query */
-+ /* Start DNS A record query */
- if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA_ONLY) == 0)
- {
- if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) {
-@@ -511,7 +519,7 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job)
- &srv->common, &srv->q_a);
- }
-
-- /* Start DNA AAAA record query */
-+ /* Start DNS AAAA record query */
- if (status == PJ_SUCCESS &&
- (query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0)
- {
-diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
-index d672a6d..6dd14d1 100644
---- a/pjsip/src/pjsip/sip_transport.c
-+++ b/pjsip/src/pjsip/sip_transport.c
-@@ -422,7 +422,8 @@ PJ_DEF(pj_status_t) pjsip_tx_data_create( pjsip_tpmgr *mgr,
- tdata = PJ_POOL_ZALLOC_T(pool, pjsip_tx_data);
- tdata->pool = pool;
- tdata->mgr = mgr;
-- pj_memcpy(tdata->obj_name, pool->obj_name, PJ_MAX_OBJ_NAME);
-+ pj_ansi_snprintf(tdata->obj_name, sizeof(tdata->obj_name), "tdta%p", tdata);
-+ pj_memcpy(pool->obj_name, tdata->obj_name, sizeof(pool->obj_name));
-
- status = pj_atomic_create(tdata->pool, 0, &tdata->ref_cnt);
- if (status != PJ_SUCCESS) {
---
-2.7.4
-