You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2011/04/27 09:25:45 UTC

svn commit: r1097020 - /trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h

Author: zwoop
Date: Wed Apr 27 07:25:45 2011
New Revision: 1097020

URL: http://svn.apache.org/viewvc?rev=1097020&view=rev
Log:
TS-752 If you cancel a scan really quickly you can get a NULL dereference.
Author: William Bardwell
Review: leif

Modified:
    trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h

Modified: trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h?rev=1097020&r1=1097019&r2=1097020&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h (original)
+++ trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h Wed Apr 27 07:25:45 2011
@@ -546,10 +546,12 @@ free_CacheVC(CacheVC *cont)
   Debug("cache_free", "free %p", cont);
   ProxyMutex *mutex = cont->mutex;
   Vol *vol = cont->vol;
-  CACHE_DECREMENT_DYN_STAT(cont->base_stat + CACHE_STAT_ACTIVE);
-  if (cont->closed > 0) {
-    CACHE_INCREMENT_DYN_STAT(cont->base_stat + CACHE_STAT_SUCCESS);
-  }                             // else abort,cancel
+  if (vol) {
+    CACHE_DECREMENT_DYN_STAT(cont->base_stat + CACHE_STAT_ACTIVE);
+    if (cont->closed > 0) {
+      CACHE_INCREMENT_DYN_STAT(cont->base_stat + CACHE_STAT_SUCCESS);
+    }                             // else abort,cancel
+  }
   ink_debug_assert(mutex->thread_holding == this_ethread());
   if (cont->trigger)
     cont->trigger->cancel();