summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-11-08 08:25:54 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-11-08 08:25:54 -0600
commit9e69c78d6ff9e8a931f8d71afde836e975d04fd1 (patch)
tree91ff74f87f810e45387e647c0bbc1e8d10b69739
parent698ff5b4cb2ac401bc905486911d1a07117b65d1 (diff)
parentb358e441cd64e8047558519f34a96a95cfe80e48 (diff)
Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun"
-rw-r--r--main/cdr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/cdr.c b/main/cdr.c
index fdf764540..3681cdc6b 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -3407,7 +3407,8 @@ static int cdr_object_update_party_b_userfield_cb(void *obj, void *arg, void *da
ast_assert(cdr->party_b.snapshot
&& !strcasecmp(cdr->party_b.snapshot->name, info->channel_name));
- strcpy(cdr->party_b.userfield, info->userfield);
+ ast_copy_string(cdr->party_b.userfield, info->userfield,
+ sizeof(cdr->party_b.userfield));
}
return 0;
@@ -3430,7 +3431,8 @@ void ast_cdr_setuserfield(const char *channel_name, const char *userfield)
if (it_cdr->fn_table == &finalized_state_fn_table && it_cdr->next != NULL) {
continue;
}
- ast_copy_string(it_cdr->party_a.userfield, userfield, AST_MAX_USER_FIELD);
+ ast_copy_string(it_cdr->party_a.userfield, userfield,
+ sizeof(it_cdr->party_a.userfield));
}
ao2_unlock(cdr);
}