summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpierre%netscape.com <devnull@localhost>2004-03-03 03:18:33 +0000
committerjpierre%netscape.com <devnull@localhost>2004-03-03 03:18:33 +0000
commitb0441310d43e56cf58f4ad38e2c3bb49b1630ddc (patch)
tree2411b06097c5ef41a764ca4ff3af74ad0e19d893
parentb85042123b304439f8d02a3c8a9423cb9f35a7e2 (diff)
downloadnss-hg-b0441310d43e56cf58f4ad38e2c3bb49b1630ddc.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) {