aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-07-24 19:40:57 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-07-24 19:40:57 +0000
commit8967cd36e07490f5292d87388f9a5b4a971a4052 (patch)
treececea09fdbe3446c71ad38a07d731dd71481eb4c /apps
parent75c30aa6d891b0307cd27082eb9ad712140b1134 (diff)
Blocked revisions 208622 via svnmerge
........ r208622 | mmichelson | 2009-07-24 14:24:28 -0500 (Fri, 24 Jul 2009) | 16 lines Don't impose an arbitrary limit on member lines in queues.conf I know what some of you are thinking: "UGH! Mark, why are you using ast_strdup and ast_free for the string when you can just use ast_strdupa and let the memory free itself?! Have the bats been chewing on your brain again?" Based on past experiences, I don't like using ast_strdupa inside a loop. It's a good way to potentially exhaust stack space. Also, since this only happens when reloading queues, I don't think that heap allocations and frees are going to be a huge problem. (closes issue #15559) Reported by: amorsen ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@208661 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_queue.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 71aa9e2d1..2fc317a64 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -5488,7 +5488,7 @@ static int reload_queues(int reload)
struct ao2_iterator mem_iter;
int new;
const char *general_val = NULL;
- char parse[80];
+ char *parse;
char *interface, *state_interface;
char *membername = NULL;
int penalty;
@@ -5607,7 +5607,9 @@ static int reload_queues(int reload)
}
/* Add a new member */
- ast_copy_string(parse, var->value, sizeof(parse));
+ if (!(parse = ast_strdup(var->value))) {
+ continue;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -5652,6 +5654,7 @@ static int reload_queues(int reload)
else {
q->membercount++;
}
+ ast_free(parse);
} else {
queue_set_param(q, var->name, var->value, var->lineno, 1);
}