diff --git a/netwerk/cache/mgr/nsCachedNetData.cpp b/netwerk/cache/mgr/nsCachedNetData.cpp index 3d9c04d61b32..cff9bae4fc3b 100644 --- a/netwerk/cache/mgr/nsCachedNetData.cpp +++ b/netwerk/cache/mgr/nsCachedNetData.cpp @@ -1215,11 +1215,15 @@ nsCachedNetData::InterceptAsyncRead(nsIStreamListener *aOriginalListener, interceptListener = new InterceptStreamListener(this, aOriginalListener); if (!interceptListener) return NS_ERROR_OUT_OF_MEMORY; + + NS_ADDREF(interceptListener); // for return rv = interceptListener->Init(aStartingOffset); - if (NS_FAILED(rv)) return rv; + if (NS_FAILED(rv)) { + NS_RELEASE(interceptListener); + return rv; + } - NS_ADDREF(interceptListener); - *aResult = interceptListener; + *aResult = interceptListener; // addref above return NS_OK; }