diff options
-rw-r--r-- | res/res_musiconhold.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index a9fafa9bc..30a363574 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -364,33 +364,25 @@ static int spawn_mp3(struct mohclass *class) argv[argc++] = "8192"; /* Look for extra arguments and add them to the list */ - strncpy(xargs, class->args, sizeof(xargs) - 1); + ast_copy_string(xargs, class->args, sizeof(xargs)); argptr = xargs; while (!ast_strlen_zero(argptr)) { argv[argc++] = argptr; - argptr = strchr(argptr, ','); - if (argptr) { - *argptr = '\0'; - argptr++; - } + strsep(&argptr, ","); } } else { /* Format arguments for argv vector */ - strncpy(xargs, class->args, sizeof(xargs) - 1); + ast_copy_string(xargs, class->args, sizeof(xargs)); argptr = xargs; while (!ast_strlen_zero(argptr)) { argv[argc++] = argptr; - argptr = strchr(argptr, ' '); - if (argptr) { - *argptr = '\0'; - argptr++; - } + strsep(&argptr, " "); } } if (strstr(class->dir,"http://") || strstr(class->dir,"HTTP://")) { - strncpy(fns[files], class->dir, sizeof(fns[files]) - 1); + ast_copy_string(fns[files], class->dir, sizeof(fns[files])); argv[argc++] = fns[files]; files++; } else if (dir) { @@ -400,7 +392,7 @@ static int spawn_mp3(struct mohclass *class) (!strcasecmp(de->d_name + strlen(de->d_name) - 4, ".raw") || !strcasecmp(de->d_name + strlen(de->d_name) - 4, ".sln"))) || !strcasecmp(de->d_name + strlen(de->d_name) - 4, ".mp3"))) { - strncpy(fns[files], de->d_name, sizeof(fns[files]) - 1); + ast_copy_string(fns[files], de->d_name, sizeof(fns[files])); argv[argc++] = fns[files]; files++; } |