summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpierre%netscape.com <devnull@localhost>2004-03-03 03:24:58 +0000
committerjpierre%netscape.com <devnull@localhost>2004-03-03 03:24:58 +0000
commitaaf1a327036149d027b88119bcaa5a03cfd5d5c4 (patch)
tree15fb640994d4c0b06796d20b17b3124d8fc83180
parent8fbe26c25db1088ba411ce704849a35a01b9d279 (diff)
downloadnss-hg-aaf1a327036149d027b88119bcaa5a03cfd5d5c4.tar.gz
Fix for 235874 - crash in PK11_DigestKey . r=wtc, nelsonb
-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 47f6ca5b5..65cae261b 100644
--- a/security/nss/lib/pk11wrap/pk11skey.c
+++ b/security/nss/lib/pk11wrap/pk11skey.c
@@ -3875,6 +3875,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 614269292..8ed3e0e8d 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -2392,6 +2392,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;
+ }
md5 = PK11_CloneContext(ssl3->hs.md5);
if (md5 == NULL) {