aboutsummaryrefslogtreecommitdiffstats
path: root/main/pbx.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/pbx.c')
-rw-r--r--main/pbx.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/main/pbx.c b/main/pbx.c
index 6a62bb24d..7811126cc 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -1469,7 +1469,8 @@ static struct match_char *add_exten_to_pattern_tree(struct ast_context *con, str
int l1 = strlen(e1->exten) + strlen(e1->cidmatch) + 2;
- strncpy(extenbuf,e1->exten,sizeof(extenbuf));
+ ast_copy_string(extenbuf, e1->exten, sizeof(extenbuf));
+
if (e1->matchcid && l1 <= sizeof(extenbuf)) {
strcat(extenbuf,"/");
strcat(extenbuf,e1->cidmatch);
@@ -1997,7 +1998,9 @@ struct ast_context *ast_context_find(const char *name)
{
struct ast_context *tmp = NULL;
struct fake_context item;
- strncpy(item.name,name,256);
+
+ ast_copy_string(item.name, name, sizeof(item.name));
+
ast_rdlock_contexts();
if( contexts_table ) {
tmp = ast_hashtab_lookup(contexts_table,&item);
@@ -2069,8 +2072,10 @@ struct ast_exten *pbx_find_extension(struct ast_channel *chan,
tmp = bypass;
else { /* look in contexts */
struct fake_context item;
- strncpy(item.name,context,256);
- tmp = ast_hashtab_lookup(contexts_table,&item);
+
+ ast_copy_string(item.name, context, sizeof(item.name));
+
+ tmp = ast_hashtab_lookup(contexts_table, &item);
#ifdef NOTNOW
tmp = NULL;
while ((tmp = ast_walk_contexts(tmp)) ) {
@@ -4422,7 +4427,8 @@ int ast_context_lockmacro(const char *context)
ast_rdlock_contexts();
- strncpy(item.name,context,256);
+ ast_copy_string(item.name, context, sizeof(item.name));
+
c = ast_hashtab_lookup(contexts_table,&item);
if (c)
ret = 0;
@@ -4460,7 +4466,8 @@ int ast_context_unlockmacro(const char *context)
ast_rdlock_contexts();
- strncpy(item.name, context, 256);
+ ast_copy_string(item.name, context, sizeof(item.name));
+
c = ast_hashtab_lookup(contexts_table,&item);
if (c)
ret = 0;
@@ -5780,7 +5787,7 @@ struct ast_context *ast_context_find_or_create(struct ast_context **extcontexts,
0);
}
- strncpy(search.name,name,sizeof(search.name));
+ ast_copy_string(search.name, name, sizeof(search.name));
if (!extcontexts) {
ast_rdlock_contexts();
local_contexts = &contexts;
@@ -7006,7 +7013,7 @@ int ast_add_extension2(struct ast_context *con,
if (con->pattern_tree) { /* usually, on initial load, the pattern_tree isn't formed until the first find_exten; so if we are adding
an extension, and the trie exists, then we need to incrementally add this pattern to it. */
- strncpy(dummy_name,extension,sizeof(dummy_name));
+ ast_copy_string(dummy_name, extension, sizeof(dummy_name));
dummy_exten.exten = dummy_name;
dummy_exten.matchcid = 0;
dummy_exten.cidmatch = 0;