From: Amos Jeffries Date: Thu, 29 Nov 2012 11:17:11 +0000 (-0700) Subject: Fix various assertion with side effects X-Git-Tag: SQUID_3_2_4~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58eefcf165b9027838b4aa2ebe6ce359f428557e;p=thirdparty%2Fsquid.git 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 --- 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