diff --git a/main/cdr.c b/main/cdr.c
index fdf76454014502950c75cd80554b2e59a1146500..3681cdc6bd9951d233dfb9e8ed0c5c41b5530fca 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);
 	}