summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpierre%netscape.com <devnull@localhost>2004-03-03 03:18:10 +0000
committerjpierre%netscape.com <devnull@localhost>2004-03-03 03:18:10 +0000
commitb95d8d565cdbdbafd5c7a6152b17855cb61eae42 (patch)
tree9ccd1ffa840c42a376545dd132929ab757f5fb89
parent91fffd20533134a9761b068d3729881d14ffc250 (diff)
downloadnss-hg-b95d8d565cdbdbafd5c7a6152b17855cb61eae42.tar.gz
Fix for 235874 - crash in PK11_DigestKey . r=wtc, nelsonbNSS_CLIENT_TAG_20040304
-rw-r--r--security/nss/lib/pk11wrap/pk11skey.c5
-rw-r--r--security/nss/lib/ssl/ssl3con.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/security/nss/lib/pk11wrap/pk11skey.c b/security/nss/lib/pk11wrap/pk11skey.c
index 7998c81e7..e1431b3d4 100644
--- a/security/nss/lib/pk11wrap/pk11skey.c
+++ b/security/nss/lib/pk11wrap/pk11skey.c
@@ -4476,6 +4476,11 @@ PK11_DigestKey(PK11Context *context, PK11SymKey *key)
SECStatus rv = SECSuccess;
PK11SymKey *newKey = NULL;
+ if (!context || !key) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ return SECFailure;
+ }
+
/* if we ran out of session, we need to restore our previously stored
* state.
*/
diff --git a/security/nss/lib/ssl/ssl3con.c b/security/nss/lib/ssl/ssl3con.c
index 1b2cd4fc1..daed7453d 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -2776,6 +2776,10 @@ ssl3_ComputeHandshakeHashes(sslSocket * ss,
PORT_Assert( ssl_HaveSSL3HandshakeLock(ss) );
isTLS = (PRBool)(spec->version > SSL_LIBRARY_VERSION_3_0);
+ if (!spec->master_secret) {
+ PORT_SetError(SSL_ERROR_RX_UNEXPECTED_HANDSHAKE);
+ return SECFailure;
+ }
md5StateBuf = PK11_SaveContextAlloc(ssl3->hs.md5, md5StackBuf,
sizeof md5StackBuf, &md5StateLen);