mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-03 04:27:41 +00:00
Bug 376865 - nsInputStreamPump::AsyncRead does not null check listenerp=Ryan Jones <sciguyryan@gmail.com>r+sr=biesi
This commit is contained in:
parent
b620304f75
commit
cb0fbc5f4c
@ -293,8 +293,7 @@ NS_IMETHODIMP
|
||||
nsInputStreamPump::AsyncRead(nsIStreamListener *listener, nsISupports *ctxt)
|
||||
{
|
||||
NS_ENSURE_TRUE(mState == STATE_IDLE, NS_ERROR_IN_PROGRESS);
|
||||
|
||||
nsresult rv;
|
||||
NS_ENSURE_ARG_POINTER(listener);
|
||||
|
||||
//
|
||||
// OK, we need to use the stream transport service if
|
||||
@ -304,7 +303,7 @@ nsInputStreamPump::AsyncRead(nsIStreamListener *listener, nsISupports *ctxt)
|
||||
//
|
||||
|
||||
PRBool nonBlocking;
|
||||
rv = mStream->IsNonBlocking(&nonBlocking);
|
||||
nsresult rv = mStream->IsNonBlocking(&nonBlocking);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
if (nonBlocking) {
|
||||
|
23
netwerk/test/unit/test_bug376865.js
Normal file
23
netwerk/test/unit/test_bug376865.js
Normal file
@ -0,0 +1,23 @@
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
||||
function run_test() {
|
||||
var stream = Cc["@mozilla.org/io/string-input-stream;1"].
|
||||
createInstance(Ci.nsISupportsCString);
|
||||
stream.data = "foo bar baz";
|
||||
|
||||
var pump = Cc["@mozilla.org/network/input-stream-pump;1"].
|
||||
createInstance(Ci.nsIInputStreamPump);
|
||||
pump.init(stream, -1, -1, 0, 0, false);
|
||||
|
||||
// When we pass a null listener argument too asyncRead we expect it to throw
|
||||
// instead of crashing.
|
||||
try {
|
||||
pump.asyncRead(null, null);
|
||||
}
|
||||
catch (e) {
|
||||
return;
|
||||
}
|
||||
|
||||
do_throw("asyncRead didn't throw when passed a null listener argument.");
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user