mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 1513470 - Block redirect content from being shown when target data URL is broken, r=dragana
This commit is contained in:
parent
44da92569e
commit
7c45d38957
@ -82,7 +82,13 @@ nsresult nsDataChannel::OpenContentStream(bool async, nsIInputStream** result,
|
|||||||
if (lBase64) {
|
if (lBase64) {
|
||||||
nsAutoCString decodedData;
|
nsAutoCString decodedData;
|
||||||
rv = Base64Decode(data, decodedData);
|
rv = Base64Decode(data, decodedData);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
if (NS_FAILED(rv)) {
|
||||||
|
// Returning this error code instead of what Base64Decode returns
|
||||||
|
// (NS_ERROR_ILLEGAL_VALUE) will prevent rendering of redirect response
|
||||||
|
// content by HTTP channels. It's also more logical error to return.
|
||||||
|
// Here we know the URL is actually corrupted.
|
||||||
|
return NS_ERROR_MALFORMED_URI;
|
||||||
|
}
|
||||||
|
|
||||||
contentLen = decodedData.Length();
|
contentLen = decodedData.Length();
|
||||||
rv = NS_NewCStringInputStream(getter_AddRefs(bufInStream), decodedData);
|
rv = NS_NewCStringInputStream(getter_AddRefs(bufInStream), decodedData);
|
||||||
|
@ -5617,6 +5617,7 @@ nsresult nsHttpChannel::ContinueProcessRedirection(nsresult rv) {
|
|||||||
} else {
|
} else {
|
||||||
rv = mRedirectChannel->AsyncOpen(mListener, mListenerContext);
|
rv = mRedirectChannel->AsyncOpen(mListener, mListenerContext);
|
||||||
}
|
}
|
||||||
|
LOG((" new channel AsyncOpen returned %" PRIX32, static_cast<uint32_t>(rv)));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
// close down this channel
|
// close down this channel
|
||||||
|
Loading…
Reference in New Issue
Block a user