зеркало из https://github.com/mozilla/pjs.git
Bug 479485 - Invalid port numbers cause default port to be used, should fail to load, r=bzbarsky
This commit is contained in:
Родитель
ad80b1cd03
Коммит
fb5cb450d6
|
@ -614,10 +614,15 @@ nsAuthURLParser::ParseServerInfo(const char *serverinfo, PRInt32 serverinfoLen,
|
|||
if (port) {
|
||||
// XXX unfortunately ToInteger is not defined for substrings
|
||||
nsCAutoString buf(colon+1, serverinfoLen - (colon + 1 - serverinfo));
|
||||
PRInt32 err;
|
||||
*port = buf.ToInteger(&err);
|
||||
if (NS_FAILED(err))
|
||||
*port = -1;
|
||||
if (buf.Length() == 0) {
|
||||
*port = -1;
|
||||
}
|
||||
else {
|
||||
PRInt32 err;
|
||||
*port = buf.ToInteger(&err);
|
||||
if (NS_FAILED(err))
|
||||
return NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
|
||||
function run_test() {
|
||||
var ios = Cc["@mozilla.org/network/io-service;1"].
|
||||
getService(Ci.nsIIOService);
|
||||
|
||||
var success = false;
|
||||
try {
|
||||
var newURI = ios.newURI("http://foo.com:invalid", null, null);
|
||||
}
|
||||
catch (e) {
|
||||
success = e.result == Cr.NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
if (!success)
|
||||
do_throw("We didn't throw NS_ERROR_MALFORMED_URI when creating a new URI with :invalid as a port");
|
||||
|
||||
success = false;
|
||||
newURI = ios.newURI("http://foo.com", null, null);
|
||||
try {
|
||||
newURI.spec = "http://foo.com:invalid";
|
||||
}
|
||||
catch (e) {
|
||||
success = e.result == Cr.NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
if (!success)
|
||||
do_throw("We didn't throw NS_ERROR_MALFORMED_URI when setting a spec of a URI with :invalid as a port");
|
||||
}
|
Загрузка…
Ссылка в новой задаче