From e1bd198bc05794bdb570f8bc250d3c53d0240e85 Mon Sep 17 00:00:00 2001 From: Russell Bryant <russell@russellbryant.com> Date: Wed, 19 Mar 2008 04:14:12 +0000 Subject: [PATCH] Minor coding style changes, including adding handling for memory allocation failure git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@109842 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/pbx.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/main/pbx.c b/main/pbx.c index 548e20268b..b5f6ddd017 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -1091,19 +1091,30 @@ static void new_find_extension(const char *str, struct scoreboard *score, struct static struct match_char *already_in_tree(struct match_char *current, char *pat) { struct match_char *t; + if (!current) return 0; - for (t=current; t; t=t->alt_char) { - if (strcmp(pat,t->x) == 0) /* uh, we may want to sort exploded [] contents to make matching easy */ + + for (t = current; t; t = t->alt_char) { + if (!strcmp(pat, t->x)) /* uh, we may want to sort exploded [] contents to make matching easy */ return t; } + return 0; } static struct match_char *add_pattern_node(struct ast_context *con, struct match_char *current, char *pattern, int is_pattern, int already, int specificity) { - struct match_char *m = ast_calloc(1,sizeof(struct match_char)); - m->x = ast_strdup(pattern); + struct match_char *m; + + if (!(m = ast_calloc(1, sizeof(*m)))) + return NULL; + + if (!(m->x = ast_strdup(pattern))) { + ast_free(m); + return NULL; + } + m->is_pattern = is_pattern; if (specificity == 1 && is_pattern && pattern[0] == 'N') m->specificity = 98; @@ -1133,6 +1144,7 @@ static struct match_char *add_pattern_node(struct ast_context *con, struct match } } } + return m; } -- GitLab