summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2010-05-20 20:49:40 +0000
committerRichard Mudgett <rmudgett@digium.com>2010-05-20 20:49:40 +0000
commitdafb48fe09f5c2abc197903768d15533ec4cbf7d (patch)
tree3d33e4ce6d7e7322553013e23c6d008ceb1774e1 /main
parent3d1f005fedc976a7f3533d3fa16a315841f2974f (diff)
Avoid crash in generic CC agent init if caller name or number is NULL.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/ccss.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/main/ccss.c b/main/ccss.c
index 8dd048c9a..04fa92a1c 100644
--- a/main/ccss.c
+++ b/main/ccss.c
@@ -2339,8 +2339,12 @@ static int cc_generic_agent_init(struct ast_cc_agent *agent, struct ast_channel
}
generic_pvt->offer_timer_id = -1;
- ast_copy_string(generic_pvt->cid_num, chan->cid.cid_num, sizeof(generic_pvt->cid_num));
- ast_copy_string(generic_pvt->cid_name, chan->cid.cid_name, sizeof(generic_pvt->cid_name));
+ if (chan->cid.cid_num) {
+ ast_copy_string(generic_pvt->cid_num, chan->cid.cid_num, sizeof(generic_pvt->cid_num));
+ }
+ if (chan->cid.cid_name) {
+ ast_copy_string(generic_pvt->cid_name, chan->cid.cid_name, sizeof(generic_pvt->cid_name));
+ }
ast_copy_string(generic_pvt->exten, S_OR(chan->macroexten, chan->exten), sizeof(generic_pvt->exten));
ast_copy_string(generic_pvt->context, S_OR(chan->macrocontext, chan->context), sizeof(generic_pvt->context));
agent->private_data = generic_pvt;