aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_gtalk.c
diff options
context:
space:
mode:
authorseanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-22 20:01:11 +0000
committerseanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-22 20:01:11 +0000
commit79a81d8116cfbd496b6535f2b6150e909385c73d (patch)
tree9dc2319663f207fb106ff4269668611b2d33d4d3 /channels/chan_gtalk.c
parent3d36df37ef99dc3745e39175a8dfb44e4101e92c (diff)
Don't crash if an RTP instance can't be created. This could occur when an
invalid bindaddr was specified in gtalk.conf. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@196381 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_gtalk.c')
-rw-r--r--channels/chan_gtalk.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c
index 7b430fa09..bfa0915f6 100644
--- a/channels/chan_gtalk.c
+++ b/channels/chan_gtalk.c
@@ -947,7 +947,11 @@ static struct gtalk_pvt *gtalk_alloc(struct gtalk *client, const char *us, const
tmp->initiator = 1;
}
/* clear codecs */
- tmp->rtp = ast_rtp_instance_new(NULL, sched, &bindaddr, NULL);
+ if (!(tmp->rtp = ast_rtp_instance_new(NULL, sched, &bindaddr, NULL))) {
+ ast_log(LOG_ERROR, "Failed to create a new RTP instance (possibly an invalid bindaddr?)\n");
+ ast_free(tmp);
+ return NULL;
+ }
ast_rtp_instance_set_prop(tmp->rtp, AST_RTP_PROPERTY_RTCP, 1);
ast_rtp_codecs_payloads_clear(ast_rtp_instance_get_codecs(tmp->rtp), tmp->rtp);