Index: webkit/common/database/database_identifier.cc |
diff --git a/webkit/common/database/database_identifier.cc b/webkit/common/database/database_identifier.cc |
index 332dfb8b0cc4ec7ad1c596e19dff76b59d565d4d..8867dc15e587c5e752c1efc37a61f5f512a23989 100644 |
--- a/webkit/common/database/database_identifier.cc |
+++ b/webkit/common/database/database_identifier.cc |
@@ -58,6 +58,13 @@ DatabaseIdentifier DatabaseIdentifier::CreateFromOrigin(const GURL& origin) { |
DatabaseIdentifier DatabaseIdentifier::Parse(const std::string& identifier) { |
if (!IsStringASCII(identifier)) |
return DatabaseIdentifier(); |
+ if (identifier.find("..") != std::string::npos) |
+ return DatabaseIdentifier(); |
+ char forbidden[] = {'\\', '/', ':' ,'\0'}; |
michaeln
2014/03/18 22:32:46
i've relocated these checks into DatabaseIdentifie
|
+ if (identifier.find_first_of(forbidden, 0, arraysize(forbidden)) != |
+ std::string::npos) { |
+ return DatabaseIdentifier(); |
+ } |
size_t first_underscore = identifier.find_first_of('_'); |
if (first_underscore == std::string::npos || first_underscore == 0) |