diff options
Diffstat (limited to 'pbx')
-rw-r--r-- | pbx/dundi-parser.c | 12 | ||||
-rw-r--r-- | pbx/pbx_dundi.c | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/pbx/dundi-parser.c b/pbx/dundi-parser.c index 3c57442a4..418a28c58 100644 --- a/pbx/dundi-parser.c +++ b/pbx/dundi-parser.c @@ -512,8 +512,10 @@ int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned ied->buf[ied->pos++] = ie; ied->buf[ied->pos++] = datalen; ied->buf[ied->pos++] = cause; - memcpy(ied->buf + ied->pos, data, datalen-1); - ied->pos += datalen-1; + if (data) { + memcpy(ied->buf + ied->pos, data, datalen-1); + ied->pos += datalen-1; + } return 0; } @@ -531,8 +533,10 @@ int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned s flags = htons(flags); memcpy(ied->buf + ied->pos, &flags, sizeof(flags)); ied->pos += 2; - memcpy(ied->buf + ied->pos, data, datalen-1); - ied->pos += datalen-2; + if (data) { + memcpy(ied->buf + ied->pos, data, datalen-2); + ied->pos += datalen-2; + } return 0; } diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c index 2e5c39e17..52430838a 100644 --- a/pbx/pbx_dundi.c +++ b/pbx/pbx_dundi.c @@ -1021,7 +1021,7 @@ static int dundi_prop_precache(struct dundi_transaction *trans, struct dundi_ies totallen += (ies->eidcount - skipfirst) * sizeof(dundi_eid); st = ast_calloc(1, totallen); if (st) { - ast_copy_string(st->called_context, ies->called_context, sizeof(st->called_context)); + ast_copy_string(st->called_context, dr.dcontext, sizeof(st->called_context)); ast_copy_string(st->called_number, ies->called_number, sizeof(st->called_number)); st->trans = trans; st->ttl = ies->ttl - 1; |