diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2011-02-23 23:38:04 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2011-02-23 23:38:04 +0000 |
commit | e84227050f49fbf0e4c0662b1abb8fc14ff24711 (patch) | |
tree | 0fb13b03b0dd5f42f109742880ab6b94d990a09c | |
parent | 466be071367e2490fc9b38efce7b0fb70becdb90 (diff) |
sig_pri_new_ast_channel() should return NULL when new_ast_channel() fails.
(closes issue #18874)
Reported by: cmaj
Patches:
patch-sig_pri-crash-possible-null-channel-pointer.diff.txt uploaded by cmaj (license 830)
JIRA SWP-3172
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@308622 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/sig_pri.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/channels/sig_pri.c b/channels/sig_pri.c index fadf111e1..549a11d89 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -865,10 +865,14 @@ static struct ast_channel *sig_pri_new_ast_channel(struct sig_pri_chan *p, int s { struct ast_channel *c; - if (p->calls->new_ast_channel) + if (p->calls->new_ast_channel) { c = p->calls->new_ast_channel(p->chan_pvt, state, ulaw, exten, requestor); - else + } else { + return NULL; + } + if (!c) { return NULL; + } if (!p->owner) p->owner = c; |