From dd98f858d76ba06ef328b0186451a752292d50d8 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Wed, 19 Jan 2011 19:03:32 +0000 Subject: [PATCH] Merged revisions 302554 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r302554 | seanbright | 2011-01-19 14:02:29 -0500 (Wed, 19 Jan 2011) | 7 lines Don't call strlen() when we only need to look at the next character or two. (closes issue #18042) Reported by: wdoekes Patches: astsvn-inefficient-ast-uri-decode.patch uploaded by wdoekes (license 717) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302555 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/utils.c b/main/utils.c index 2f7086a0df..ad03044e74 100644 --- a/main/utils.c +++ b/main/utils.c @@ -422,7 +422,7 @@ void ast_uri_decode(char *s) unsigned int tmp; for (o = s; *s; s++, o++) { - if (*s == '%' && strlen(s) > 2 && sscanf(s + 1, "%2x", &tmp) == 1) { + if (*s == '%' && s[1] != '\0' && s[2] != '\0' && sscanf(s + 1, "%2x", &tmp) == 1) { /* have '%', two chars and correct parsing */ *o = tmp; s += 2; /* Will be incremented once more when we break out */