]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Allow configured numbers for FollowMe to be greater than 90 characters
authorMatthew Jordan <mjordan@digium.com>
Thu, 6 Sep 2012 00:56:47 +0000 (00:56 +0000)
committerMatthew Jordan <mjordan@digium.com>
Thu, 6 Sep 2012 00:56:47 +0000 (00:56 +0000)
When parsing a 'number' defined in followme.conf, FollowMe previously parsed
the number in the configuration file into a buffer with a length of 90
characters.  This can artificially limit some parallel dial scenarios.  This
patch allows for numbers of any length to be defined in the configuration
file.

Note that Clod Patry originally wrote a patch to fix this problem and received
a Ship It! on the JIRA issue.  The patch originally expanded the buffer to 256
characters.  Instead, the patch being committed duplicates the string in the
config file on the stack before parsing it for consumption by the application.

(closes issue ASTERISK-16879)
Reported by: Clod Patry
Tested by: mjordan
patches:
  followme_no_limit.diff uploaded by Clod Patry (license #5138)

Slightly modified for this commit.
........

Merged revisions 372390 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372391 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_followme.c

index 95904690612c0bd9d4e49758e7bfa9008d0d0b40..7e2631ca8ab3332cf25ec21ac86a77ec7f164390 100644 (file)
@@ -351,7 +351,7 @@ static int reload_followme(int reload)
        char *cat = NULL, *tmp;
        struct ast_variable *var;
        struct number *cur, *nm;
-       char numberstr[90];
+       char *numberstr;
        int timeout;
        int numorder;
        const char *takecallstr;
@@ -467,7 +467,7 @@ static int reload_followme(int reload)
                                int idx = 0;
 
                                /* Add a new number */
-                               ast_copy_string(numberstr, var->value, sizeof(numberstr));
+                               numberstr = ast_strdupa(var->value);
                                if ((tmp = strchr(numberstr, ','))) {
                                        *tmp++ = '\0';
                                        timeout = atoi(tmp);