| Index: extensions/common/url_pattern.cc
|
| diff --git a/extensions/common/url_pattern.cc b/extensions/common/url_pattern.cc
|
| index f85661a026a4dd0edcc09f24332b8ad9726d2b0e..735e71e9fa0298704005aa12e3f11fd8fabbc86e 100644
|
| --- a/extensions/common/url_pattern.cc
|
| +++ b/extensions/common/url_pattern.cc
|
| @@ -54,6 +54,7 @@ const char kParseErrorEmptyHost[] = "Host can not be empty.";
|
| const char kParseErrorInvalidHostWildcard[] = "Invalid host wildcard.";
|
| const char kParseErrorEmptyPath[] = "Empty path.";
|
| const char kParseErrorInvalidPort[] = "Invalid port.";
|
| +const char kParseErrorInvalidHost[] = "Invalid host.";
|
|
|
| // Message explaining each URLPattern::ParseResult.
|
| const char* const kParseResultMessages[] = {
|
| @@ -65,6 +66,7 @@ const char* const kParseResultMessages[] = {
|
| kParseErrorInvalidHostWildcard,
|
| kParseErrorEmptyPath,
|
| kParseErrorInvalidPort,
|
| + kParseErrorInvalidHost,
|
| };
|
|
|
| COMPILE_ASSERT(URLPattern::NUM_PARSE_RESULTS == arraysize(kParseResultMessages),
|
| @@ -266,6 +268,10 @@ URLPattern::ParseResult URLPattern::Parse(const std::string& pattern) {
|
| if (host_.find('*') != std::string::npos)
|
| return PARSE_ERROR_INVALID_HOST_WILDCARD;
|
|
|
| + // Null characters are not allowed in hosts.
|
| + if (host_.find('\0') != std::string::npos)
|
| + return PARSE_ERROR_INVALID_HOST;
|
| +
|
| return PARSE_SUCCESS;
|
| }
|
|
|
|
|