Fix Segmentation fault in ShowCache::handleCacheEvent
authorzhang <15535135608@163.com>
Thu, 29 Jun 2023 15:41:23 +0000 (16:41 +0100)
committerAdrian Bunk <bunk@debian.org>
Thu, 29 Jun 2023 15:41:23 +0000 (16:41 +0100)
Origin: upstream
Bug: https://github.com/apache/trafficserver/issues/4328
Applied-Upstream: https://github.com/apache/trafficserver/commit/616eb10bfc35599a2c93ff30879d584a05ddf83e
Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
Last-Update: 2018-10-17

Last-Update: 2018-10-17
Gbp-Pq: Name 0011-fix-segfault.patch

iocore/cache/CachePages.cc

index 4578c4b235cdde0d4f75e81141f74edf3060242f..089cb5908abb5d68471b0b767ed42f3a9546afac 100644 (file)
@@ -337,6 +337,13 @@ ShowCache::handleCacheEvent(int event, Event *e)
     CacheHTTPInfoVector *vec = &(cache_vc->vector);
     int alt_count            = vec->count();
     if (alt_count) {
+      // check cache_vc->first_buf is NULL, response cache lookup busy.
+      if (cache_vc->first_buf == nullptr) {
+        cache_vc->do_io_close(-1);
+        CHECK_SHOW(show("<H3>Cache Lookup Busy, please try again</H3>\n"));
+        return complete(event, e);
+      }
+
       Doc *d = (Doc *)(cache_vc->first_buf->data());
       time_t t;
       char tmpstr[4096];