summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWan-Teh Chang <wtc@google.com>2013-06-06 17:12:57 -0700
committerWan-Teh Chang <wtc@google.com>2013-06-06 17:12:57 -0700
commit86f6206a932f3dcc45d77327d2bc3fddd58bd339 (patch)
treee03db43412da4ec95d41aec3e010fa4435398d46
parent5e832185af1237d2aa25001c80f63ec58f147a1e (diff)
downloadnss-hg-86f6206a932f3dcc45d77327d2bc3fddd58bd339.tar.gz
Bug 872745: SSL_HandshakeNegotiatedExtension should call PR_SetError
before returning SECFailure. r=bsmith.
-rw-r--r--lib/ssl/sslreveal.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/ssl/sslreveal.c b/lib/ssl/sslreveal.c
index 03341221d..dc14794bd 100644
--- a/lib/ssl/sslreveal.c
+++ b/lib/ssl/sslreveal.c
@@ -77,19 +77,22 @@ SSL_HandshakeNegotiatedExtension(PRFileDesc * socket,
{
/* some decisions derived from SSL_GetChannelInfo */
sslSocket * sslsocket = NULL;
- SECStatus rv = SECFailure;
PRBool enoughFirstHsDone = PR_FALSE;
- if (!pYes)
- return rv;
+ if (!pYes) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ return SECFailure;
+ }
sslsocket = ssl_FindSocket(socket);
if (!sslsocket) {
SSL_DBG(("%d: SSL[%d]: bad socket in HandshakeNegotiatedExtension",
SSL_GETPID(), socket));
- return rv;
+ return SECFailure;
}
+ *pYes = PR_FALSE;
+
if (sslsocket->firstHsDone) {
enoughFirstHsDone = PR_TRUE;
} else if (sslsocket->ssl3.initialized && ssl3_CanFalseStart(sslsocket)) {
@@ -109,9 +112,8 @@ SSL_HandshakeNegotiatedExtension(PRFileDesc * socket,
ssl_GetSSL3HandshakeLock(sslsocket);
*pYes = ssl3_ExtensionNegotiated(sslsocket, extId);
ssl_ReleaseSSL3HandshakeLock(sslsocket);
- rv = SECSuccess;
}
}
- return rv;
+ return SECSuccess;
}