don't loop forever on an invalid options string (issue #5629)
authorRussell Bryant <russell@russellbryant.com>
Sun, 6 Nov 2005 22:17:47 +0000 (22:17 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sun, 6 Nov 2005 22:17:47 +0000 (22:17 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6989 65c4cc65-6c06-0410-ace0-fbb531ad65f3

ChangeLog
channels/chan_agent.c

index 9c099bb..d708c26 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,7 @@
        * many files: Add doxygen updates to categorize modules into groups. Convert a lot of comments over to doxygen style. Add some text giving a basic overview of channels.
        * many files: Update applications to add an exit status variable, make priority jumping optional, and use new args parsing macros
        * pbx.c cdr.c res/res_features.c apps/app_dial.c include/asterisk/cdr.h: Convert some built-in applications to use new args parsing macros.  Change ast_cdr_reset to take a pointer to an ast_flags structure instead of an integer for flags.
+       * channels/chan_agent.c: Don't loop forever on an invalid options string
 
 2005-11-05  Kevin P. Fleming  <kpfleming@digium.com>
 
index f886288..7cacdb2 100755 (executable)
@@ -1658,13 +1658,12 @@ static struct ast_cli_entry cli_agent_logoff = {
 STANDARD_LOCAL_USER;
 LOCAL_USER_DECL;
 
-/**
- * Log in agent application.
+/*!
+ * \brief Log in agent application.
  *
- * @param chan
- * @param data
- * @param callbackmode
- * @returns 
+ * \param chan
+ * \param data
+ * \param callbackmode non-zero for AgentCallbackLogin
  */
 static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
 {
@@ -1736,10 +1735,9 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
                context = parse;
        }
 
-       while (!ast_strlen_zero(args.options)) {
-               if (*args.options == 's') {
+       if (!ast_strlen_zero(args.options)) {
+               if (strchr(args.options, 's')) {
                        play_announcement = 0;
-                       break;
                }
        }