mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
moebius#130: URL parser - fix: don't allow empty host name
https://github.com/MoonchildProductions/moebius/issues/130
This commit is contained in:
parent
aa1df43166
commit
196fddddb6
14 changed files with 51 additions and 72 deletions
|
|
@ -1483,6 +1483,11 @@ nsStandardURL::SetSpec(const nsACString &input)
|
|||
rv = BuildNormalizedSpec(spec);
|
||||
}
|
||||
|
||||
// Make sure that a URLTYPE_AUTHORITY has a non-empty hostname.
|
||||
if (mURLType == URLTYPE_AUTHORITY && mHost.mLen == -1) {
|
||||
rv = NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
Clear();
|
||||
// If parsing the spec has failed, restore the old URL
|
||||
|
|
@ -3092,20 +3097,26 @@ nsStandardURL::SetFile(nsIFile *file)
|
|||
rv = net_GetURLSpecFromFile(file, url);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
SetSpec(url);
|
||||
uint32_t oldURLType = mURLType;
|
||||
uint32_t oldDefaultPort = mDefaultPort;
|
||||
rv = Init(nsIStandardURL::URLTYPE_NO_AUTHORITY, -1, url, nullptr, nullptr);
|
||||
|
||||
rv = Init(mURLType, mDefaultPort, url, nullptr, nullptr);
|
||||
if (NS_FAILED(rv)) {
|
||||
// Restore the old url type and default port if the call to Init fails.
|
||||
mURLType = oldURLType;
|
||||
mDefaultPort = oldDefaultPort;
|
||||
return rv;
|
||||
}
|
||||
|
||||
// must clone |file| since its value is not guaranteed to remain constant
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
InvalidateCache();
|
||||
if (NS_FAILED(file->Clone(getter_AddRefs(mFile)))) {
|
||||
NS_WARNING("nsIFile::Clone failed");
|
||||
// failure to clone is not fatal (GetFile will generate mFile)
|
||||
mFile = nullptr;
|
||||
}
|
||||
InvalidateCache();
|
||||
if (NS_FAILED(file->Clone(getter_AddRefs(mFile)))) {
|
||||
NS_WARNING("nsIFile::Clone failed");
|
||||
// failure to clone is not fatal (GetFile will generate mFile)
|
||||
mFile = nullptr;
|
||||
}
|
||||
return rv;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue