windows-afsd-init-lock-order-validation-20080830
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 30 Aug 2008 15:13:03 +0000 (15:13 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 30 Aug 2008 15:13:03 +0000 (15:13 +0000)
LICENSE MIT

Add TransarcAFSDaemon/Parameters key "LockOrderValidation" DWORD
to control lock order validation functionality.  Defaults to off
for release builds and on for checked builds.

src/WINNT/afsd/afsd_init.c

index 4ded551..7ac330e 100644 (file)
@@ -561,6 +561,7 @@ int afsd_InitCM(char **reasonP)
     DWORD rx_enable_peer_stats;
     DWORD rx_enable_process_stats;
     DWORD rx_udpbufsize = -1;
+    DWORD lockOrderValidation;
     long traceBufSize;
     long maxcpus;
     long ltt, ltto;
@@ -625,6 +626,19 @@ int afsd_InitCM(char **reasonP)
         osi_panic(buf, __FILE__, __LINE__);
     }
 
+    dummyLen = sizeof(lockOrderValidation);
+    code = RegQueryValueEx(parmKey, "LockOrderValidation", NULL, NULL,
+                            (BYTE *) &lockOrderValidation, &dummyLen);
+    if (code != ERROR_SUCCESS) {
+#ifdef DEBUG
+        lockOrderValidation = 1;
+#else
+        lockOrderValidation = 0;
+#endif
+    }
+    osi_SetLockOrderValidation(lockOrderValidation);
+    afsi_log("Lock Order Validation %s", lockOrderValidation ? "On" : "Off");
+
     dummyLen = sizeof(maxcpus);
     code = RegQueryValueEx(parmKey, "MaxCPUs", NULL, NULL,
                             (BYTE *) &maxcpus, &dummyLen);