diff options
Diffstat (limited to 'funcs/func_strings.c')
-rw-r--r-- | funcs/func_strings.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/funcs/func_strings.c b/funcs/func_strings.c index 00b6dd172..0aaf3fc4b 100644 --- a/funcs/func_strings.c +++ b/funcs/func_strings.c @@ -51,7 +51,9 @@ static char *function_fieldqty(struct ast_channel *chan, char *cmd, char *data, sprintf(varsubst, "${%s}", varname); pbx_substitute_variables_helper(chan, varsubst, varval, sizeof(varval) - 1); - if (delim) { + if (ast_strlen_zero(varval)) + fieldcount = 0; + else if (delim) { while (strsep(&varval2, delim)) fieldcount++; } else if (!ast_strlen_zero(varval)) { @@ -60,7 +62,7 @@ static char *function_fieldqty(struct ast_channel *chan, char *cmd, char *data, snprintf(buf, len, "%d", fieldcount); } else { ast_log(LOG_ERROR, "Out of memory\n"); - strncpy(buf, "1", len); + ast_copy_string(buf, "1", len); } return buf; } |