diff options
author | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-22 20:01:11 +0000 |
---|---|---|
committer | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-22 20:01:11 +0000 |
commit | 79a81d8116cfbd496b6535f2b6150e909385c73d (patch) | |
tree | 9dc2319663f207fb106ff4269668611b2d33d4d3 /channels/chan_gtalk.c | |
parent | 3d36df37ef99dc3745e39175a8dfb44e4101e92c (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.c | 6 |
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); |