- move the string join() function to utils.c since it is used in both cli.c and res_agi.c

- reimplement ast_join to be of linear effieciency instead of quadratic
- remove some useless checks for "if (e)"
- reorder checks for strings starting with '_' to avoid a useless call to ast_join()
- check array bounds when parsing arguments to AGI
(issue #5868)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2005-12-20 20:20:04 +00:00
parent 9398c57e6f
commit 0da13c21b4
4 changed files with 52 additions and 53 deletions

13
cli.c
View File

@@ -1019,17 +1019,8 @@ static struct ast_cli_entry *find_cli(char *cmds[], int exact)
static void join(char *dest, size_t destsize, char *w[], int tws)
{
int x;
/* Join words into a string */
if (!dest || destsize < 1) {
return;
}
dest[0] = '\0';
for (x=0;w[x];x++) {
if (x)
strncat(dest, " ", destsize - strlen(dest) - 1);
strncat(dest, w[x], destsize - strlen(dest) - 1);
}
ast_join(dest, destsize, w);
if (tws && !ast_strlen_zero(dest))
strncat(dest, " ", destsize - strlen(dest) - 1);
}