Page MenuHomeFreeBSD

D26811.id78291.diff
No OneTemporary

D26811.id78291.diff

Index: sys/opencrypto/crypto.c
===================================================================
--- sys/opencrypto/crypto.c
+++ sys/opencrypto/crypto.c
@@ -1539,7 +1539,7 @@
* match), then skip.
*/
cap = crypto_drivers[hid];
- if (cap->cc_dev == NULL ||
+ if (cap == NULL ||
(cap->cc_flags & match) == 0)
continue;
@@ -1879,15 +1879,18 @@
if (krp->krp_status != 0)
CRYPTOSTAT_INC(cs_kerrs);
- CRYPTO_DRIVER_LOCK();
cap = krp->krp_cap;
- KASSERT(cap->cc_koperations > 0, ("cc_koperations == 0"));
- cap->cc_koperations--;
- if (cap->cc_koperations == 0 && cap->cc_flags & CRYPTOCAP_F_CLEANUP)
- wakeup(cap);
- CRYPTO_DRIVER_UNLOCK();
- krp->krp_cap = NULL;
- cap_rele(cap);
+ if (cap != NULL) {
+ CRYPTO_DRIVER_LOCK();
+ KASSERT(cap->cc_koperations > 0, ("cc_koperations == 0"));
+ cap->cc_koperations--;
+ if (cap->cc_koperations == 0 &&
+ cap->cc_flags & CRYPTOCAP_F_CLEANUP)
+ wakeup(cap);
+ CRYPTO_DRIVER_UNLOCK();
+ krp->krp_cap = NULL;
+ cap_rele(cap);
+ }
ret_worker = CRYPTO_RETW(0);

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 23, 2:37 AM (5 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24079144
Default Alt Text
D26811.id78291.diff (1 KB)

Event Timeline