diff options
-rw-r--r-- | utils/ael_main.c | 16 | ||||
-rw-r--r-- | utils/muted.c | 16 |
2 files changed, 23 insertions, 9 deletions
diff --git a/utils/ael_main.c b/utils/ael_main.c index 225e23b91..606ac8d6a 100644 --- a/utils/ael_main.c +++ b/utils/ael_main.c @@ -62,8 +62,10 @@ void destroy_namelist(struct namelist *x) struct namelist *create_name(char *name); struct namelist *create_name(char *name) { - struct namelist *x = (struct namelist *)calloc(sizeof(struct namelist),1); - strncpy(x->name,name,100); + struct namelist *x = calloc(1, sizeof(*x)); + if (!x) + return NULL; + strncpy(x->name, name, sizeof(x->name) - 1); return x; } @@ -253,14 +255,16 @@ void pbx_builtin_setvar(void *chan, void *data) struct ast_context * ast_context_create(void **extcontexts, const char *name, const char *registrar) { - struct ast_context *x = (struct ast_context *)calloc(sizeof(struct ast_context),1); + struct ast_context *x = calloc(1, sizeof(*x)); + if (!x) + return NULL; x->next = context_list; context_list = x; - if(!no_comp) + if (!no_comp) printf("Executed ast_context_create(conts, name=%s, registrar=%s);\n", name, registrar); conts++; - strncpy(x->name,name,100); - strncpy(x->registrar,registrar,100); + strncpy(x->name, name, sizeof(x->name) - 1); + strncpy(x->registrar, registrar, sizeof(x->registrar) - 1); return x; } diff --git a/utils/muted.c b/utils/muted.c index 879bea583..6a32b6d99 100644 --- a/utils/muted.c +++ b/utils/muted.c @@ -85,8 +85,15 @@ static void add_channel(char *tech, char *location) chan = malloc(sizeof(struct channel)); if (chan) { memset(chan, 0, sizeof(struct channel)); - chan->tech = strdup(tech); - chan->location = strdup(location); + if (!(chan->tech = strdup(tech))) { + free(chan); + return; + } + if (!(chan->location = strdup(location))) { + free(chan->tech); + free(chan); + return; + } chan->next = channels; channels = chan; } @@ -550,7 +557,10 @@ static void append_sub(struct channel *chan, char *name) sub = malloc(sizeof(struct subchannel)); if (sub) { memset(sub, 0, sizeof(struct subchannel)); - sub->name = strdup(name); + if (!(sub->name = strdup(name))) { + free(sub); + return; + } sub->next = chan->subs; chan->subs = sub; } |