diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-24 19:33:54 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-24 19:33:54 +0000 |
commit | 29cc0aa3aca3f4215469282b0c4e318b14460f3e (patch) | |
tree | 666f9a1c6ba79f5e6ce744b08548f9b1dcbc2ef7 /apps | |
parent | fdeaf65576371afaf4f50ff6f3204439b1494343 (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.0@208655 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_queue.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c index 6b6bdf910..296edfebb 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -5419,7 +5419,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; @@ -5538,7 +5538,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); @@ -5583,6 +5585,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); } |