diff options
author | George Joseph <gjoseph@digium.com> | 2017-11-08 08:25:54 -0600 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-11-08 08:25:54 -0600 |
commit | 9e69c78d6ff9e8a931f8d71afde836e975d04fd1 (patch) | |
tree | 91ff74f87f810e45387e647c0bbc1e8d10b69739 | |
parent | 698ff5b4cb2ac401bc905486911d1a07117b65d1 (diff) | |
parent | b358e441cd64e8047558519f34a96a95cfe80e48 (diff) |
Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun"
-rw-r--r-- | main/cdr.c | 6 |
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); } |