Bug 376865 - nsInputStreamPump::AsyncRead does not null check listenerp=Ryan Jones <sciguyryan@gmail.com>r+sr=biesi

This commit is contained in:
asqueella@gmail.com 2007-04-25 13:52:16 -07:00
parent b620304f75
commit cb0fbc5f4c
2 changed files with 25 additions and 3 deletions

View File

@ -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) {

View 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.");
}