summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rgw/rgw_common.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc
index d9c0a809ac7..8f6fa686978 100644
--- a/src/rgw/rgw_common.cc
+++ b/src/rgw/rgw_common.cc
@@ -559,14 +559,14 @@ bool verify_object_permission(struct req_state *s, int perm)
return verify_object_permission(s, s->bucket_acl, s->object_acl, perm);
}
-static char hex_to_num(char c)
+static char hex_to_nibble(char c)
{
static char table[256];
static bool initialized = false;
if (!initialized) {
- memset(table, -1, sizeof(table));
+ memset(table, 0x10, sizeof(table));
int i;
for (i = '0'; i<='9'; i++)
table[i] = i - '0';
@@ -597,14 +597,14 @@ bool url_decode(string& src_str, string& dest_str)
src++;
if (!*src)
break;
- char c1 = hex_to_num(*src++);
+ char c1 = hex_to_nibble(*src++);
if (!*src)
break;
- c = c1 << 4;
- if (c1 < 0)
+ if (c1 >= 0x10)
return false;
- c1 = hex_to_num(*src++);
- if (c1 < 0)
+ c = c1 << 4;
+ c1 = hex_to_nibble(*src++);
+ if (c1 >= 0x10)
return false;
c |= c1;
dest[pos++] = c;