summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Bryant <bbryant@digium.com>2008-07-17 18:14:42 +0000
committerBrett Bryant <bbryant@digium.com>2008-07-17 18:14:42 +0000
commitaca8e1abe9720ab39807a38e1a36a67108f36b1a (patch)
treecbcf95794bd875bf22355a3128ee55597f8e5e0e
parent38f7641c93e363d8bcc8574ce4edf69350a88ab8 (diff)
Fix a memory leak in register_group_feature when attempting to register
a feature without specifying a group or feature to register. (closes issue #13101) Reported by: eliel Patches: features.c.patch uploaded by eliel (license 64) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/features.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/main/features.c b/main/features.c
index 5550f81aa..e3d92d135 100644
--- a/main/features.c
+++ b/main/features.c
@@ -1498,14 +1498,6 @@ static void register_group_feature(struct feature_group *fg, const char *exten,
{
struct feature_group_exten *fge;
- if (!(fge = ast_calloc(1, sizeof(*fge))))
- return;
-
- if (ast_string_field_init(fge, 128)) {
- ast_free(fge);
- return;
- }
-
if (!fg) {
ast_log(LOG_NOTICE, "You didn't pass a group!\n");
return;
@@ -1516,7 +1508,15 @@ static void register_group_feature(struct feature_group *fg, const char *exten,
return;
}
- ast_string_field_set(fge, exten, (ast_strlen_zero(exten) ? feature->exten : exten));
+ if (!(fge = ast_calloc(1, sizeof(*fge))))
+ return;
+
+ if (ast_string_field_init(fge, 128)) {
+ ast_free(fge);
+ return;
+ }
+
+ ast_string_field_set(fge, exten, S_OR(exten, feature->exten));
fge->feature = feature;