From 58eefcf165b9027838b4aa2ebe6ce359f428557e Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Thu, 29 Nov 2012 04:17:11 -0700 Subject: [PATCH] Fix various assertion with side effects When compiled with high optimization and assert disabled these operations would have disappeared. The side effects being: * Disk I/O failure protection disabled. Allowing loops in diskd write. * squidpurge error handling on command line parse gone. Causing segfault. * squidpurge 'I am Alive' ticker feature cease working. Detected by Coverity Scan. Issues 740299, 740300, 740301, 740302, 740303 --- src/DiskIO/DiskDaemon/DiskdIOStrategy.cc | 3 ++- src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc | 3 ++- tools/purge/purge.cc | 11 +++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc b/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc index 1168bfea9e..0dd5f6a65e 100644 --- a/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc +++ b/src/DiskIO/DiskDaemon/DiskdIOStrategy.cc @@ -405,7 +405,8 @@ DiskdIOStrategy::SEND(diomsg *M, int mtype, int id, size_t size, off_t offset, s } else { debugs(79, 1, "storeDiskdSend: msgsnd: " << xstrerror()); cbdataReferenceDone(M->callback_data); - assert(++send_errors < 100); + ++send_errors; + assert(send_errors < 100); if (shm_offset > -1) shm.put(shm_offset); } diff --git a/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc b/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc index 19f220b44c..72ec72264d 100644 --- a/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc +++ b/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc @@ -356,7 +356,8 @@ DiskThreadsDiskFile::writeDone(int rvfd, int errflag, size_t len, RefCount