Bug 337744 - tighten up resource: protocol handling, r=darin

This commit is contained in:
benjamin%smedbergs.us 2006-07-12 15:25:51 +00:00
Родитель b2241856c0
Коммит cfb1086db3
1 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -311,6 +311,11 @@ NS_IMETHODIMP
nsResProtocolHandler::ResolveURI(nsIURI *uri, nsACString &result)
{
nsresult rv;
nsCOMPtr<nsIURL> url(do_QueryInterface(uri));
if (!url)
return NS_NOINTERFACE;
nsCAutoString host;
nsCAutoString path;
@ -320,6 +325,13 @@ nsResProtocolHandler::ResolveURI(nsIURI *uri, nsACString &result)
rv = uri->GetPath(path);
if (NS_FAILED(rv)) return rv;
nsCAutoString filepath;
url->GetFilePath(filepath);
// Don't misinterpret the filepath as an absolute URI.
if (filepath.FindChar(':') != -1)
return NS_ERROR_MALFORMED_URI;
nsCOMPtr<nsIURI> baseURI;
rv = GetSubstitution(host, getter_AddRefs(baseURI));
if (NS_FAILED(rv)) return rv;