diff --git a/mozilla/netwerk/protocol/res/src/nsResProtocolHandler.cpp b/mozilla/netwerk/protocol/res/src/nsResProtocolHandler.cpp index 907d775f30d..7959bb1ab41 100644 --- a/mozilla/netwerk/protocol/res/src/nsResProtocolHandler.cpp +++ b/mozilla/netwerk/protocol/res/src/nsResProtocolHandler.cpp @@ -51,6 +51,7 @@ #include "nsDirectoryServiceDefs.h" #include "nsNetUtil.h" #include "nsURLHelper.h" +#include "nsEscape.h" static NS_DEFINE_CID(kResURLCID, NS_RESURL_CID); @@ -332,6 +333,10 @@ nsResProtocolHandler::ResolveURI(nsIURI *uri, nsACString &result) if (filepath.FindChar(':') != -1) return NS_ERROR_MALFORMED_URI; + NS_UnescapeURL(filepath); + if (filepath.FindChar('\\') != -1) + return NS_ERROR_MALFORMED_URI; + const char *p = path.get() + 1; // path always starts with a slash NS_ASSERTION(*(p-1) == '/', "Path did not begin with a slash!");