summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralexei.volkov.bugs%sun.com <devnull@localhost>2006-05-13 00:46:50 +0000
committeralexei.volkov.bugs%sun.com <devnull@localhost>2006-05-13 00:46:50 +0000
commit3d416031126a84e1182e50b0e8e9b0dbd46e94e8 (patch)
tree87afc978f4d79e0d38a78cee3b33cae5dc462c7a
parent7fbfee2b90cc8b7235fb93db0e71ed48d879ac54 (diff)
downloadnss-hg-3d416031126a84e1182e50b0e8e9b0dbd46e94e8.tar.gz
Patch contributed by timeless@bemail.org
[Bug 336992] crash [@ pk11_DoKeys] "arg" Pointer dereferenced before NULL check. r=nelson
-rw-r--r--security/nss/lib/pk11wrap/pk11akey.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/security/nss/lib/pk11wrap/pk11akey.c b/security/nss/lib/pk11wrap/pk11akey.c
index f63ff3b9f..9692d971f 100644
--- a/security/nss/lib/pk11wrap/pk11akey.c
+++ b/security/nss/lib/pk11wrap/pk11akey.c
@@ -1719,6 +1719,9 @@ pk11_DoKeys(PK11SlotInfo *slot, CK_OBJECT_HANDLE keyHandle, void *arg)
SECStatus rv = SECSuccess;
SECKEYPrivateKey *privKey;
pk11KeyCallback *keycb = (pk11KeyCallback *) arg;
+ if (!arg) {
+ return SECFailure;
+ }
privKey = PK11_MakePrivKey(slot,nullKey,PR_TRUE,keyHandle,keycb->wincx);
@@ -1726,7 +1729,7 @@ pk11_DoKeys(PK11SlotInfo *slot, CK_OBJECT_HANDLE keyHandle, void *arg)
return SECFailure;
}
- if (keycb && (keycb->callback)) {
+ if (keycb->callback) {
rv = (*keycb->callback)(privKey,keycb->callbackArg);
}