aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-03 18:57:53 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-03 18:57:53 +0000
commit0ad8dbf57c0fc0619f7fa583acb1664d5512e7a1 (patch)
treeb73aa374e4de2208f6f7e9d6a4ead6f5f6fa1239 /channels/chan_iax2.c
parent7c7c0b845b181be28344d187a42312ec7473c4fe (diff)
Remove a couple of calls to ast_string_field_free_pools() on peers in error
handling blocks in the code for building peers. The peer object destructor does this and doing it twice will cause a crash. (closes issue #10625, reported by and patched by pnlarsson) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@81433 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 775e7473b..d968219b6 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -9026,20 +9026,16 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, st
ast_sched_del(sched, peer->expire);
peer->expire = -1;
ast_clear_flag(peer, IAX_DYNAMIC);
- if (ast_dnsmgr_lookup(v->value, &peer->addr.sin_addr, &peer->dnsmgr)) {
- ast_string_field_free_pools(peer);
+ if (ast_dnsmgr_lookup(v->value, &peer->addr.sin_addr, &peer->dnsmgr))
return peer_unref(peer);
- }
if (!peer->addr.sin_port)
peer->addr.sin_port = htons(IAX_DEFAULT_PORTNO);
}
if (!maskfound)
inet_aton("255.255.255.255", &peer->mask);
} else if (!strcasecmp(v->name, "defaultip")) {
- if (ast_get_ip(&peer->defaddr, v->value)) {
- ast_string_field_free_pools(peer);
+ if (ast_get_ip(&peer->defaddr, v->value))
return peer_unref(peer);
- }
} else if (!strcasecmp(v->name, "sourceaddress")) {
peer_set_srcaddr(peer, v->value);
} else if (!strcasecmp(v->name, "permit") ||