DragonFlyBSD Kernel Audit
DF-2010 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/iscsi/initiator/isc_cam.c b/sys/dev/disk/iscsi/initiator/isc_cam.c
--- a/sys/dev/disk/iscsi/initiator/isc_cam.c
+++ b/sys/dev/disk/iscsi/initiator/isc_cam.c
@@ -207,9 +207,11 @@
 
      debug_called(8);
 
-     if((ccb_h->target_id != CAM_TARGET_WILDCARD) && (ccb_h->target_id < MAX_SESSIONS))
+     if((ccb_h->target_id != CAM_TARGET_WILDCARD) && (ccb_h->target_id < MAX_SESSIONS)) {
+	  crit_enter();
 	  sp = isp->sessions[ccb_h->target_id];
-     else
+	  crit_exit();
+     } else
 	  sp = NULL;
 
      ccb_h->spriv_ptr0 = sp;