diff options
author | Riza Sulistyo <riza@teluu.com> | 2016-11-01 04:10:17 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2016-11-01 04:10:17 +0000 |
commit | ca2a5c2d6759dbe0cc2adbbb6283189a89d4819a (patch) | |
tree | 88c992bc1a26353ce4851b696b59df7218175fc0 | |
parent | 5a30bbc8b89a334ab5e92f7355bacd307f2fa87f (diff) |
Re #1974: Fix DNS write on freed memory.
Thanks to Richard Mudgett for the patch.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5477 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjlib-util/src/pjlib-util/resolver.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c index cfca16ad..890f89d9 100644 --- a/pjlib-util/src/pjlib-util/resolver.c +++ b/pjlib-util/src/pjlib-util/resolver.c @@ -929,7 +929,13 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, /* Must return PJ_SUCCESS */ status = PJ_SUCCESS; - goto on_return; + /* + * We cannot write to *p_query after calling cb because what + * p_query points to may have been freed by cb. + * Refer to ticket #1974. + */ + pj_mutex_unlock(resolver->mutex); + return status; } /* At this point, we have a cached entry, but this entry has expired. |