From: David Vossel Date: Thu, 19 Mar 2009 19:40:07 +0000 (+0000) Subject: Cleaning up a few things in detect disconnect patch X-Git-Tag: 1.4.25-rc1~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f42e9eb6bfb3dc4af53f5e9a885ded1afd732886;p=thirdparty%2Fasterisk.git Cleaning up a few things in detect disconnect patch Initialized ast_call_feature in detect_disconnect to avoid accessing uninitialized memory. Cleaned up /param tags in features.h. No longer send dynamic features in ast_feature_detect. issue #11583 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@183386 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_dial.c b/apps/app_dial.c index 63d00a7d42..bb5e9570c2 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -792,7 +792,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct dial_l static int detect_disconnect(struct ast_channel *chan, char code, char *featurecode, int len) { struct ast_flags features = { AST_FEATURE_DISCONNECT }; /* only concerned with disconnect feature */ - struct ast_call_feature feature; + struct ast_call_feature feature = { 0, }; char *tmp; int res; diff --git a/include/asterisk/features.h b/include/asterisk/features.h index 7e4de19726..4ecf593769 100644 --- a/include/asterisk/features.h +++ b/include/asterisk/features.h @@ -101,7 +101,11 @@ char *ast_pickup_ext(void); int ast_bridge_call(struct ast_channel *chan, struct ast_channel *peer,struct ast_bridge_config *config); /*! \brief detect a feature before bridging - \param chan, ast_flags ptr, code, ast_call_feature ptr to be set if found */ + \param chan + \param ast_flags ptr + \param char ptr of input code + \retval ast_call_feature ptr to be set if found + \return result, was feature found or not */ int ast_feature_detect(struct ast_channel *chan, struct ast_flags *features, char *code, struct ast_call_feature *feature); /*! \brief Pickup a call */ diff --git a/res/res_features.c b/res/res_features.c index 631d8ebca8..c6d00e810e 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -1344,12 +1344,7 @@ static int feature_interpret(struct ast_channel *chan, struct ast_channel *peer, int ast_feature_detect(struct ast_channel *chan, struct ast_flags *features, char *code, struct ast_call_feature *feature) { - char *dynamic_features; - ast_channel_lock(chan); - dynamic_features = ast_strdupa(S_OR(pbx_builtin_getvar_helper(chan, "DYNAMIC_FEATURES"),"")); - ast_channel_unlock(chan); - - return feature_interpret_helper(chan, NULL, NULL, code, 0, dynamic_features, features, 0, feature); + return feature_interpret_helper(chan, NULL, NULL, code, 0, NULL, features, 0, feature); } static void set_config_flags(struct ast_channel *chan, struct ast_channel *peer, struct ast_bridge_config *config)