aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-10 21:20:38 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-02-10 21:20:38 +0000
commit96c8d883cd317dfe255dca28df63e93188a3e2d6 (patch)
tree4da034155789397eeb97922f684acefa49dd0334
parent6362602098bca4bee5289bea26706576e096ea83 (diff)
Merged revisions 246200 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r246200 | tilghman | 2010-02-10 15:19:35 -0600 (Wed, 10 Feb 2010) | 2 lines Fix weird issue with unit tests on optimized build - turned out to be a signing issue. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@246201 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--funcs/func_strings.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/funcs/func_strings.c b/funcs/func_strings.c
index c7ed460ac..82b025209 100644
--- a/funcs/func_strings.c
+++ b/funcs/func_strings.c
@@ -87,7 +87,8 @@ static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *
AST_APP_ARG(allowed);
AST_APP_ARG(string);
);
- char *outbuf = buf, ac;
+ char *outbuf = buf;
+ unsigned char ac;
char allowed[256] = "";
size_t allowedlen = 0;
int32_t bitfield[8] = { 0, }; /* 256 bits */
@@ -104,7 +105,7 @@ static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *
}
/* Expand ranges */
- for (; *(args.allowed) && allowedlen < sizeof(allowed); ) {
+ for (; *(args.allowed);) {
char c1 = 0, c2 = 0;
size_t consumed = 0;
@@ -128,13 +129,13 @@ static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *
for (ac = c1; ac != c2; ac++) {
bitfield[ac / 32] |= 1 << (ac % 32);
}
+ bitfield[ac / 32] |= 1 << (ac % 32);
ast_debug(4, "c1=%d, c2=%d\n", c1, c2);
-
- /* Decrement before the loop increment */
- (args.allowed)--;
} else {
- bitfield[c1 / 32] |= 1 << (c1 % 32);
+ ac = (unsigned char) c1;
+ ast_debug(4, "c1=%d, consumed=%d, args.allowed=%s\n", c1, consumed, args.allowed - consumed);
+ bitfield[ac / 32] |= 1 << (ac % 32);
}
}