diff --git a/src/node_url.cc b/src/node_url.cc index 1aae557115851f..6a9f8f3ca9e1f6 100644 --- a/src/node_url.cc +++ b/src/node_url.cc @@ -368,8 +368,7 @@ namespace url { } // First, we have to percent decode - if (PercentDecode(input, length, &decoded) < 0) - goto end; + PercentDecode(input, length, &decoded); // Then we have to punycode toASCII if (!ToASCII(&decoded, &decoded)) diff --git a/src/node_url.h b/src/node_url.h index 198c29938b7d22..ba05cd6fed65d2 100644 --- a/src/node_url.h +++ b/src/node_url.h @@ -376,11 +376,11 @@ static inline unsigned hex2bin(const char ch) { return static_cast(-1); } -static inline int PercentDecode(const char* input, - size_t len, - std::string* dest) { +static inline void PercentDecode(const char* input, + size_t len, + std::string* dest) { if (len == 0) - return 0; + return; dest->reserve(len); const char* pointer = input; const char* end = input + len; @@ -399,11 +399,10 @@ static inline int PercentDecode(const char* input, unsigned a = hex2bin(pointer[1]); unsigned b = hex2bin(pointer[2]); char c = static_cast(a * 16 + b); - *dest += static_cast(c); + *dest += c; pointer += 3; } } - return 0; } #define SPECIALS(XX) \