summaryrefslogtreecommitdiff
path: root/pbx
diff options
context:
space:
mode:
authorWalter Doekes <walter+asterisk@wjd.nu>2014-09-26 14:41:38 +0000
committerWalter Doekes <walter+asterisk@wjd.nu>2014-09-26 14:41:38 +0000
commit37179a2b1f0a12e063a2bb300e402ac5e7512569 (patch)
tree74872dbb405e8ef55370be0afe6bae8947a616da /pbx
parentb8c1130ed172e478d7eaccbf9ba2913aaf36b260 (diff)
core: Don't allow free to mean ast_free (and malloc, etc..).
This gets rid of most old libc free/malloc/realloc and replaces them with ast_free and friends. When compiling with MALLOC_DEBUG you'll notice it when you're mistakenly using one of the libc variants. For the legacy cases you can define WRAP_LIBC_MALLOC before including asterisk.h. Even better would be if the errors were also enabled when compiling without MALLOC_DEBUG, but that's a slightly more invasive header file change. Those compiling addons/format_mp3 will need to rerun ./contrib/scripts/get_mp3_source.sh. ASTERISK-24348 #related Review: https://reviewboard.asterisk.org/r/4015/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@423978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'pbx')
-rw-r--r--pbx/pbx_config.c72
1 files changed, 36 insertions, 36 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 01550c0b1..e76f6e892 100644
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -260,7 +260,7 @@ static int split_ec(const char *src, char **ext, char ** const ctx, char ** cons
*c++ = '\0';
*ctx = c;
if (strchr(c, '@')) { /* two @, not allowed */
- free(e);
+ ast_free(e);
return -1;
}
}
@@ -311,7 +311,7 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
already_served = lookup_ci(nc, i_name);
if (!already_served && ++which > a->n)
- res = strdup(i_name);
+ res = ast_strdup(i_name);
}
ast_unlock_context(c);
}
@@ -328,7 +328,7 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
if (a->n > 0)
return NULL;
- context = dupline = strdup(s);
+ context = dupline = ast_strdup(s);
if (!dupline) {
ast_log(LOG_ERROR, "Out of free memory\n");
return NULL;
@@ -337,18 +337,18 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
if (ast_rdlock_contexts()) {
ast_log(LOG_ERROR, "Failed to lock contexts list\n");
- free(context);
+ ast_free(context);
return NULL;
}
/* go through all contexts and check if is included ... */
while (!res && (c = ast_walk_contexts(c)))
if (lookup_ci(c, context)) /* context is really included, complete "from" command */
- res = strdup("from");
+ res = ast_strdup("from");
ast_unlock_contexts();
if (!res)
ast_log(LOG_WARNING, "%s not included anywhere\n", context);
- free(context);
+ ast_free(context);
return res;
} else if (a->pos == 5) { /* "dialplan remove include CTX from _X_" */
/*
@@ -356,7 +356,7 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
*/
char *context, *dupline, *from;
const char *s = skip_words(a->line, 3); /* skip 'dialplan' 'remove' 'include' */
- context = dupline = strdup(s);
+ context = dupline = ast_strdup(s);
if (!dupline) {
ast_log(LOG_ERROR, "Out of free memory\n");
return NULL;
@@ -367,13 +367,13 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
/* fourth word must be 'from' */
from = strsep(&dupline, " ");
if (!from || strcmp(from, "from")) {
- free(context);
+ ast_free(context);
return NULL;
}
if (ast_rdlock_contexts()) {
ast_log(LOG_ERROR, "Failed to lock context list\n");
- free(context);
+ ast_free(context);
return NULL;
}
@@ -385,10 +385,10 @@ static char *complete_dialplan_remove_include(struct ast_cli_args *a)
continue;
/* walk through all includes and check if it is our context */
if (lookup_ci(c, context) && ++which > a->n)
- res = strdup(c_name);
+ res = ast_strdup(c_name);
}
ast_unlock_contexts();
- free(context);
+ ast_free(context);
return res;
}
@@ -458,7 +458,7 @@ static char *handle_cli_dialplan_remove_extension(struct ast_cli_entry *e, int c
if ((!strlen(exten)) || (!(strlen(context)))) {
ast_cli(a->fd, "Missing extension or context name in third argument '%s'\n",
a->argv[3]);
- free(exten);
+ ast_free(exten);
return CLI_FAILURE;
}
@@ -481,7 +481,7 @@ static char *handle_cli_dialplan_remove_extension(struct ast_cli_entry *e, int c
}
ret = CLI_FAILURE;
}
- free(exten);
+ ast_free(exten);
return ret;
}
@@ -593,7 +593,7 @@ static char *complete_dialplan_remove_extension(struct ast_cli_args *a)
ast_unlock_contexts();
error2:
- free(exten);
+ ast_free(exten);
} else if (a->pos == 4) { /* 'dialplan remove extension EXT _X_' (priority) */
char *exten = NULL, *context, *cid, *p;
struct ast_context *c;
@@ -641,7 +641,7 @@ static char *complete_dialplan_remove_extension(struct ast_cli_args *a)
while ( !ret && (priority = ast_walk_extension_priorities(e, priority)) ) {
snprintf(buffer, sizeof(buffer), "%d", ast_get_extension_priority(priority));
if (partial_match(buffer, a->word, len) && ++which > a->n) /* n-th match */
- ret = strdup(buffer);
+ ret = ast_strdup(buffer);
}
break;
}
@@ -649,7 +649,7 @@ static char *complete_dialplan_remove_extension(struct ast_cli_args *a)
}
ast_unlock_contexts();
error3:
- free(exten);
+ ast_free(exten);
}
return ret;
}
@@ -741,16 +741,16 @@ static char *complete_dialplan_add_include(struct ast_cli_args *a)
}
for (c = NULL; !ret && (c = ast_walk_contexts(c)); )
if (partial_match(ast_get_context_name(c), a->word, len) && ++which > a->n)
- ret = strdup(ast_get_context_name(c));
+ ret = ast_strdup(ast_get_context_name(c));
ast_unlock_contexts();
return ret;
} else if (a->pos == 4) { /* dialplan add include CTX _X_ */
/* always complete as 'into' */
- return (a->n == 0) ? strdup("into") : NULL;
+ return (a->n == 0) ? ast_strdup("into") : NULL;
} else if (a->pos == 5) { /* 'dialplan add include CTX into _X_' (dst context) */
char *context, *dupline, *into;
const char *s = skip_words(a->line, 3); /* should not fail */
- context = dupline = strdup(s);
+ context = dupline = ast_strdup(s);
if (!dupline) {
ast_log(LOG_ERROR, "Out of free memory\n");
@@ -777,12 +777,12 @@ static char *complete_dialplan_add_include(struct ast_cli_args *a)
if (partial_match(ast_get_context_name(c), a->word, len) &&
!lookup_ci(c, context) /* not included yet */ &&
++which > a->n) {
- ret = strdup(ast_get_context_name(c));
+ ret = ast_strdup(ast_get_context_name(c));
}
}
ast_unlock_contexts();
error3:
- free(context);
+ ast_free(context);
return ret;
}
@@ -1259,7 +1259,7 @@ static char *complete_dialplan_remove_context(struct ast_cli_args *a)
/* walk through all contexts */
while ( !res && (c = ast_walk_contexts(c)) ) {
if (partial_match(ast_get_context_name(c), a->word, len) && ++which > a->n) {
- res = strdup(ast_get_context_name(c));
+ res = ast_strdup(ast_get_context_name(c));
}
}
ast_unlock_contexts();
@@ -1272,7 +1272,7 @@ static char *complete_dialplan_add_extension(struct ast_cli_args *a)
int which = 0;
if (a->pos == 4) { /* complete 'into' word ... */
- return (a->n == 0) ? strdup("into") : NULL;
+ return (a->n == 0) ? ast_strdup("into") : NULL;
} else if (a->pos == 5) { /* complete context */
struct ast_context *c = NULL;
int len = strlen(a->word);
@@ -1287,11 +1287,11 @@ static char *complete_dialplan_add_extension(struct ast_cli_args *a)
/* walk through all contexts */
while ( !res && (c = ast_walk_contexts(c)) )
if (partial_match(ast_get_context_name(c), a->word, len) && ++which > a->n)
- res = strdup(ast_get_context_name(c));
+ res = ast_strdup(ast_get_context_name(c));
ast_unlock_contexts();
return res;
} else if (a->pos == 6) {
- return a->n == 0 ? strdup("replace") : NULL;
+ return a->n == 0 ? ast_strdup("replace") : NULL;
}
return NULL;
}
@@ -1356,7 +1356,7 @@ static char *handle_cli_dialplan_add_ignorepat(struct ast_cli_entry *e, int cmd,
static char *complete_dialplan_add_ignorepat(struct ast_cli_args *a)
{
if (a->pos == 4)
- return a->n == 0 ? strdup("into") : NULL;
+ return a->n == 0 ? ast_strdup("into") : NULL;
else if (a->pos == 5) {
struct ast_context *c;
int which = 0;
@@ -1369,7 +1369,7 @@ static char *complete_dialplan_add_ignorepat(struct ast_cli_args *a)
s = skip_words(a->line, 3);
if (s == NULL)
return NULL;
- dupline = strdup(s);
+ dupline = ast_strdup(s);
if (!dupline) {
ast_log(LOG_ERROR, "Malloc failure\n");
return NULL;
@@ -1389,10 +1389,10 @@ static char *complete_dialplan_add_ignorepat(struct ast_cli_args *a)
if (ignorepat) /* there must be one, right ? */
found = lookup_c_ip(c, ignorepat);
if (!found && ++which > a->n)
- ret = strdup(ast_get_context_name(c));
+ ret = ast_strdup(ast_get_context_name(c));
}
- free(ignorepat);
+ ast_free(ignorepat);
ast_unlock_contexts();
return ret;
}
@@ -1478,7 +1478,7 @@ static char *complete_dialplan_remove_ignorepat(struct ast_cli_args *a)
found = lookup_c_ip(cw, ast_get_ignorepat_name(ip));
}
if (!found)
- ret = strdup(ast_get_ignorepat_name(ip));
+ ret = ast_strdup(ast_get_ignorepat_name(ip));
}
}
ast_unlock_context(c);
@@ -1486,12 +1486,12 @@ static char *complete_dialplan_remove_ignorepat(struct ast_cli_args *a)
ast_unlock_contexts();
return ret;
} else if (a->pos == 4) {
- return a->n == 0 ? strdup("from") : NULL;
+ return a->n == 0 ? ast_strdup("from") : NULL;
} else if (a->pos == 5) { /* XXX check this */
char *dupline, *duplinet, *ignorepat;
int len = strlen(a->word);
- dupline = strdup(a->line);
+ dupline = ast_strdup(a->line);
if (!dupline) {
ast_log(LOG_WARNING, "Out of free memory\n");
return NULL;
@@ -1503,13 +1503,13 @@ static char *complete_dialplan_remove_ignorepat(struct ast_cli_args *a)
ignorepat = strsep(&duplinet, " ");
if (!ignorepat) {
- free(dupline);
+ ast_free(dupline);
return NULL;
}
if (ast_rdlock_contexts()) {
ast_log(LOG_WARNING, "Failed to lock contexts list\n");
- free(dupline);
+ ast_free(dupline);
return NULL;
}
@@ -1519,11 +1519,11 @@ static char *complete_dialplan_remove_ignorepat(struct ast_cli_args *a)
if (!partial_match(ast_get_context_name(c), a->word, len))
continue;
if (lookup_c_ip(c, ignorepat) && ++which > a->n)
- ret = strdup(ast_get_context_name(c));
+ ret = ast_strdup(ast_get_context_name(c));
ast_unlock_context(c);
}
ast_unlock_contexts();
- free(dupline);
+ ast_free(dupline);
return NULL;
}