Print this page
10093 kmem_log_enter() dereferences pointer before NULL check

@@ -1423,15 +1423,17 @@
 
 static void *
 kmem_log_enter(kmem_log_header_t *lhp, void *data, size_t size)
 {
         void *logspace;
-        kmem_cpu_log_header_t *clhp = &lhp->lh_cpu[CPU->cpu_seqid];
+        kmem_cpu_log_header_t *clhp;
 
         if (lhp == NULL || kmem_logging == 0 || panicstr)
                 return (NULL);
 
+        clhp = &lhp->lh_cpu[CPU->cpu_seqid];
+
         mutex_enter(&clhp->clh_lock);
         clhp->clh_hits++;
         if (size > clhp->clh_avail) {
                 mutex_enter(&lhp->lh_lock);
                 lhp->lh_hits++;