]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Check invariant in DiskdFile::readDone (CID 980997)
authorFrancesco Chemolli <kinkie@squid-cache.org>
Thu, 9 Jul 2015 13:50:22 +0000 (15:50 +0200)
committerFrancesco Chemolli <kinkie@squid-cache.org>
Thu, 9 Jul 2015 13:50:22 +0000 (15:50 +0200)
src/DiskIO/DiskDaemon/DiskdFile.cc

index 3d115a0adca0d74bfdbb1e1745d50c7272ea162e..a257012a27c50785cda76cf61abaea531cb56a26 100644 (file)
@@ -348,8 +348,11 @@ DiskdFile::readDone(diomsg * M)
     ReadRequest::Pointer readRequest = dynamic_cast<ReadRequest *>(M->requestor);
 
     /* remove the free protection */
-    if (readRequest != NULL)
-        readRequest->unlock();
+    if (readRequest != NULL) {
+        const uint32_t lcount = readRequest->unlock();
+        if (lcount == 0)
+            debugs(79, DBG_IMPORTANT, "invariant check failed: redRequest reference count is 0");
+    }
 
     if (M->status < 0) {
         ++diskd_stats.read.fail;