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
This commit is contained in:
Sean Bright
2011-01-19 19:03:32 +00:00
parent 4b5115b170
commit dd98f858d7

View File

@@ -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 */