diff options
author | alexei.volkov.bugs%sun.com <devnull@localhost> | 2006-05-13 00:46:50 +0000 |
---|---|---|
committer | alexei.volkov.bugs%sun.com <devnull@localhost> | 2006-05-13 00:46:50 +0000 |
commit | 3d416031126a84e1182e50b0e8e9b0dbd46e94e8 (patch) | |
tree | 87afc978f4d79e0d38a78cee3b33cae5dc462c7a | |
parent | 7fbfee2b90cc8b7235fb93db0e71ed48d879ac54 (diff) | |
download | nss-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.c | 5 |
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); } |