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();