Index: funcs/func_strings.c =================================================================== --- funcs/func_strings.c (revision 18312) +++ funcs/func_strings.c (revision 22930) @@ -1095,6 +1095,7 @@ { struct ast_var_t *newvar; struct ast_str *prefix = ast_str_alloca(80); + size_t buf_len; if (!chan) { ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd); @@ -1113,7 +1114,9 @@ } } /* Trim the trailing comma */ - buf[strlen(buf) - 1] = '\0'; + buf_len = strlen(buf); + if (buf_len) + buf[buf_len - 1] = '\0'; return 0; } @@ -1122,6 +1125,7 @@ struct ast_var_t *newvar; struct ast_str *prefix = ast_str_alloca(80); char *tmp; + size_t buf_len; if (!chan) { ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd); @@ -1140,8 +1144,10 @@ } } /* Trim the trailing comma */ + buf_len = ast_str_strlen(*buf); tmp = ast_str_buffer(*buf); - tmp[ast_str_strlen(*buf) - 1] = '\0'; + if (buf_len) + tmp[buf_len - 1] = '\0'; return 0; }