summaryrefslogtreecommitdiff
path: root/main/cdr.c
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2017-03-27 10:03:49 -0400
committerJoshua Colp <jcolp@digium.com>2017-04-04 10:14:26 +0000
commit380973cc477f0060b7bfe09ad1034a0b53a343fd (patch)
tree35f4b44d210004283fe2f5449e52518ef0705103 /main/cdr.c
parenta889621b14a55994fcfe68341af3cef2484ff74b (diff)
CDR: Protect from data overflow in ast_cdr_setuserfield.
ast_cdr_setuserfield wrote to a fixed length field using strcpy. This could result in a buffer overrun when called from chan_sip or func_cdr. This patch adds a maximum bytes written to the field by using ast_copy_string instead. ASTERISK-26897 #close patches: 0001-CDR-Protect-from-data-overflow-in-ast_cdr_setuserfie.patch submitted by Corey Farrell (license #5909) Change-Id: Ib23ca77e9b9e2803a450e1206af45df2d2fdf65c
Diffstat (limited to 'main/cdr.c')
-rw-r--r--main/cdr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/main/cdr.c b/main/cdr.c
index 363a2c6b1..214af2cbc 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -3278,7 +3278,7 @@ 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;
}
- strcpy(it_cdr->party_a.userfield, userfield);
+ ast_copy_string(it_cdr->party_a.userfield, userfield, AST_MAX_USER_FIELD);
}
ao2_unlock(cdr);
}