mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 18:55:30 +00:00
b=118319 Fix memory leak.
r=javi/wtc sr=blizzard
This commit is contained in:
parent
4a5807462b
commit
583eafcb12
@ -889,6 +889,7 @@ nsSSLIOLayerClose(PRFileDesc *fd)
|
|||||||
popped->identity = PR_INVALID_IO_LAYER;
|
popped->identity = PR_INVALID_IO_LAYER;
|
||||||
nsNSSSocketInfo *infoObject = (nsNSSSocketInfo *)popped->secret;
|
nsNSSSocketInfo *infoObject = (nsNSSSocketInfo *)popped->secret;
|
||||||
NS_RELEASE(infoObject);
|
NS_RELEASE(infoObject);
|
||||||
|
popped->dtor(popped);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -2242,9 +2243,14 @@ nsSSLIOLayerAddToSocket(const char* host,
|
|||||||
goto loser;
|
goto loser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
infoObject->SetFileDescPtr(sslSock);
|
infoObject->SetFileDescPtr(sslSock);
|
||||||
|
|
||||||
|
rv = nsSSLIOLayerSetOptions(sslSock, forTLSStepUp, proxyHost, host, port,
|
||||||
|
infoObject);
|
||||||
|
|
||||||
|
if (NS_FAILED(rv))
|
||||||
|
goto loser;
|
||||||
|
|
||||||
/* Now, layer ourselves on top of the SSL socket... */
|
/* Now, layer ourselves on top of the SSL socket... */
|
||||||
layer = PR_CreateIOLayerStub(nsSSLIOLayerIdentity,
|
layer = PR_CreateIOLayerStub(nsSSLIOLayerIdentity,
|
||||||
&nsSSLIOLayerMethods);
|
&nsSSLIOLayerMethods);
|
||||||
@ -2261,15 +2267,6 @@ nsSSLIOLayerAddToSocket(const char* host,
|
|||||||
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("[%p] Socket set up\n", (void*)sslSock));
|
PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("[%p] Socket set up\n", (void*)sslSock));
|
||||||
infoObject->QueryInterface(NS_GET_IID(nsISupports), (void**) (info));
|
infoObject->QueryInterface(NS_GET_IID(nsISupports), (void**) (info));
|
||||||
|
|
||||||
/* This is rather confusing, but now, "layer" points to the SSL socket,
|
|
||||||
and that's what we should use for manipulating it. */
|
|
||||||
|
|
||||||
rv = nsSSLIOLayerSetOptions(layer, forTLSStepUp, proxyHost, host, port,
|
|
||||||
infoObject);
|
|
||||||
|
|
||||||
if (NS_FAILED(rv))
|
|
||||||
goto loser;
|
|
||||||
|
|
||||||
// We are going use a clear connection first //
|
// We are going use a clear connection first //
|
||||||
if (forTLSStepUp || proxyHost) {
|
if (forTLSStepUp || proxyHost) {
|
||||||
infoObject->SetFirstWrite(PR_FALSE);
|
infoObject->SetFirstWrite(PR_FALSE);
|
||||||
@ -2278,6 +2275,8 @@ nsSSLIOLayerAddToSocket(const char* host,
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
loser:
|
loser:
|
||||||
NS_IF_RELEASE(infoObject);
|
NS_IF_RELEASE(infoObject);
|
||||||
PR_FREEIF(layer);
|
if (layer) {
|
||||||
|
layer->dtor(layer);
|
||||||
|
}
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user