]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix uninitialized atomics
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 4 Jul 2015 16:16:34 +0000 (09:16 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 4 Jul 2015 16:16:34 +0000 (09:16 -0700)
 Detected by Coverity Scan. Issue 11539611308370

src/ipc/ReadWriteLock.cc
src/ipc/ReadWriteLock.h

index bca150133aee20d65bcdd4443f271df3f7012492..da35a4e44c75753f705978643c79ac3e6cafac89 100644 (file)
 #include "ipc/ReadWriteLock.h"
 #include "Store.h"
 
+Ipc::ReadWriteLock::ReadWriteLock()
+{
+    std::atomic_init(readers, 0);
+    std::atomic_init(writing, false);
+    std::atomic_init(appending, false);
+    std::atomic_init(readLevel, 0);
+    std::atomic_init(writeLevel, 0);
+}
+
 bool
 Ipc::ReadWriteLock::lockShared()
 {
index 511a29eb9da7d2c5ba4a4e7cd8e754b1e8c81387..aabaeaa451056dd1c8bc13f03f84720787773828 100644 (file)
@@ -25,7 +25,7 @@ class ReadWriteLockStats;
 class ReadWriteLock
 {
 public:
-    // default constructor is OK because of shared memory zero-initialization
+    ReadWriteLock();
 
     bool lockShared(); ///< lock for reading or return false
     bool lockExclusive(); ///< lock for modification or return false