cppcheck: fix warnings
authorMichael Wallner <mike@php.net>
Thu, 30 Jan 2020 08:27:29 +0000 (09:27 +0100)
committerMichael Wallner <mike@php.net>
Thu, 30 Jan 2020 08:27:29 +0000 (09:27 +0100)
18 files changed:
.cppcheck/.gitignore [new file with mode: 0644]
.gitignore
clients/memaslap.c
clients/memcapable.cc
clients/ms_atomic.h
clients/ms_conn.c
clients/ms_conn.h
libhashkit/jenkins.cc
libhashkit/murmur3.cc
libmemcached-1.0/memcached.hpp
libmemcached.cppcheck [new file with mode: 0644]
libmemcached/csl/context.cc
libmemcached/delete.cc
libmemcached/error.cc
libmemcached/io.cc
libmemcached/response.cc
libmemcached/touch.cc
util/instance.cc

diff --git a/.cppcheck/.gitignore b/.cppcheck/.gitignore
new file mode 100644 (file)
index 0000000..d6b7ef3
--- /dev/null
@@ -0,0 +1,2 @@
+*
+!.gitignore
index a8ea2a6dec9ba72da5cca972436fc25c47df2d69..25348f7a12760ed9f1632420f9fded85802663c3 100644 (file)
@@ -170,4 +170,3 @@ tests/testudp
 tests/var/
 tmp_chroot
 unittests/unittests
-.idea/
index 02907945459729a1caf05240741a95b514258731..dc4113502398322b803f3611a6985acc590e3318 100644 (file)
@@ -349,15 +349,15 @@ static int64_t ms_parse_time()
   case 'd':
   case 'D':
     ret*= 24;
-
+    /* fall through */
   case 'h':
   case 'H':
     ret*= 60;
-
+    /* fall through */
   case 'm':
   case 'M':
     ret*= 60;
-
+    /* fall through */
   case 's':
   case 'S':
     break;
index 31c2fc54c04203ffec5ef13123123d09661c9037..c52b3c46b62ef484650dec7c52ef31a48bf4c570 100644 (file)
@@ -37,7 +37,7 @@
 #include <libmemcached-1.0/memcached.h>
 
 #include "libmemcached/socket.hpp"
-#include "libmemcached/memcached/protocol_binary.h"
+#include "libmemcachedprotocol-0.0/binary.h"
 #include "libmemcached/byteorder.h"
 #include "clients/utilities.h"
 
@@ -536,6 +536,7 @@ static enum test_return do_validate_response_header(response *rsp,
     case PROTOCOL_BINARY_CMD_REPLACEQ:
     case PROTOCOL_BINARY_CMD_SETQ:
       verify("Quiet command shouldn't return on success" == NULL);
+      /* fall through */
     default:
       break;
     }
index 0b05bcecd3e29ab8e5b65ed68c4c13a3a84416a2..7559044af04d6387e27078367590f52e2c1e15ff 100644 (file)
 # define atomic_dec_size_nv(X) __sync_fetch_and_sub((X), 1)
 #else
 #warning "Atomic operators not found so memslap will not work correctly"
-# define atomic_add_8(X, Y)
-# define atomic_add_16(X, Y)
-# define atomic_add_32(X, Y)
-# define atomic_add_size(X, Y)
-# define atomic_dec_8(X)
-# define atomic_dec_16(X)
-# define atomic_dec_32(X)
-# define atomic_dec_size(X)
+# define atomic_add_8(X, Y) 0
+# define atomic_add_16(X, Y) 0
+# define atomic_add_32(X, Y) 0
+# define atomic_add_size(X, Y) 0
+# define atomic_dec_8(X) 0
+# define atomic_dec_16(X) 0
+# define atomic_dec_32(X) 0
+# define atomic_dec_size(X) 0
 /* The same as above, but these return the new value instead of void */
-# define atomic_add_8_nv(X, Y)
-# define atomic_add_16_nv(X, Y)
-# define atomic_add_32_nv(X, Y)
-# define atomic_add_size_nv(X, Y)
-# define atomic_dec_8_nv(X)
-# define atomic_dec_16_nv(X)
-# define atomic_dec_32_nv(X)
-# define atomic_dec_size_nv(X)
+# define atomic_add_8_nv(X, Y) 0
+# define atomic_add_16_nv(X, Y) 0
+# define atomic_add_32_nv(X, Y) 0
+# define atomic_add_size_nv(X, Y) 0
+# define atomic_dec_8_nv(X) 0
+# define atomic_dec_16_nv(X) 0
+# define atomic_dec_32_nv(X) 0
+# define atomic_dec_size_nv(X) 0
 #endif /* defined(__SUNPRO_C) */
 
 #endif /* CLIENTS_MS_ATOMIC_H */
index 2afc9fa10f029dc4a3b477317516a5f9ee408fff..85e84739835b0c3af8b8709a189f5eefa438c79d 100644 (file)
@@ -1184,6 +1184,7 @@ static int ms_ascii_process_line(ms_conn_t *c, char *command)
 
   case 'O':   /* OK */
     c->currcmd.retstat= MCD_SUCCESS;
+    break;
 
   case 'S':                    /* STORED STATS SERVER_ERROR */
     if (buffer[2] == 'A')      /* STORED STATS */
@@ -2344,7 +2345,7 @@ static void ms_conn_shrink(ms_conn_t *c)
       && (c->rudpbytes + UDP_MAX_PAYLOAD_SIZE < UDP_DATA_BUFFER_SIZE))
   {
     char *new_rbuf= (char *)realloc(c->rudpbuf, (size_t)c->rudpsize * 2);
-    if (new_rbuf)
+    if (new_rbuf)
     {
       c->rudpbuf= new_rbuf;
       c->rudpsize= UDP_DATA_BUFFER_SIZE;
index b915888d95d6b9cb420834e55172e719c2745d6b..943965ca3c85b89965925993aba46d7a719bc856 100644 (file)
@@ -17,7 +17,7 @@
 #include <netdb.h>
 
 #include "ms_task.h"
-#include <libmemcached/memcached/protocol_binary.h>
+#include <libmemcachedprotocol-0.0/binary.h>
 
 #ifdef __cplusplus
 extern "C" {
index 2197c4ccc8e320c3ec980bf3c21c10c841ca253b..3c6558a42ad9a21d9980dcb8983056f9dd073e1e 100644 (file)
@@ -173,23 +173,28 @@ uint32_t hashkit_jenkins(const char *key, size_t length, void *)
              b+=k[2]+(((uint32_t)k[3])<<16);
              a+=k[0]+(((uint32_t)k[1])<<16);
              break;
-    case 11: c+=((uint32_t)k8[10])<<16;     /* fall through */
+    case 11: c+=((uint32_t)k8[10])<<16;
+             /* fall through */
     case 10: c+=k[4];
              b+=k[2]+(((uint32_t)k[3])<<16);
              a+=k[0]+(((uint32_t)k[1])<<16);
              break;
-    case 9 : c+=k8[8];                      /* fall through */
+    case 9 : c+=k8[8];
+             /* fall through */
     case 8 : b+=k[2]+(((uint32_t)k[3])<<16);
              a+=k[0]+(((uint32_t)k[1])<<16);
              break;
-    case 7 : b+=((uint32_t)k8[6])<<16;      /* fall through */
+    case 7 : b+=((uint32_t)k8[6])<<16;
+             /* fall through */
     case 6 : b+=k[2];
              a+=k[0]+(((uint32_t)k[1])<<16);
              break;
-    case 5 : b+=k8[4];                      /* fall through */
+    case 5 : b+=k8[4];
+             /* fall through */
     case 4 : a+=k[0]+(((uint32_t)k[1])<<16);
              break;
-    case 3 : a+=((uint32_t)k8[2])<<16;      /* fall through */
+    case 3 : a+=((uint32_t)k8[2])<<16;
+             /* fall through */
     case 2 : a+=k[0];
              break;
     case 1 : a+=k8[0];
@@ -227,17 +232,28 @@ uint32_t hashkit_jenkins(const char *key, size_t length, void *)
     /*-------------------------------- last block: affect all 32 bits of (c) */
     switch(length)                   /* all the case statements fall through */
     {
-    case 12: c+=((uint32_t)k[11])<<24; /* fall through */
-    case 11: c+=((uint32_t)k[10])<<16; /* fall through */
-    case 10: c+=((uint32_t)k[9])<<8;   /* fall through */
-    case 9 : c+=k[8];                  /* fall through */
-    case 8 : b+=((uint32_t)k[7])<<24;  /* fall through */
-    case 7 : b+=((uint32_t)k[6])<<16;  /* fall through */
-    case 6 : b+=((uint32_t)k[5])<<8;   /* fall through */
-    case 5 : b+=k[4];                  /* fall through */
-    case 4 : a+=((uint32_t)k[3])<<24;  /* fall through */
-    case 3 : a+=((uint32_t)k[2])<<16;  /* fall through */
-    case 2 : a+=((uint32_t)k[1])<<8;   /* fall through */
+    case 12: c+=((uint32_t)k[11])<<24;
+             /* fall through */
+    case 11: c+=((uint32_t)k[10])<<16;
+             /* fall through */
+    case 10: c+=((uint32_t)k[9])<<8;
+             /* fall through */
+    case 9 : c+=k[8];
+             /* fall through */
+    case 8 : b+=((uint32_t)k[7])<<24;
+             /* fall through */
+    case 7 : b+=((uint32_t)k[6])<<16;
+             /* fall through */
+    case 6 : b+=((uint32_t)k[5])<<8;
+             /* fall through */
+    case 5 : b+=k[4];
+             /* fall through */
+    case 4 : a+=((uint32_t)k[3])<<24;
+             /* fall through */
+    case 3 : a+=((uint32_t)k[2])<<16;
+             /* fall through */
+    case 2 : a+=((uint32_t)k[1])<<8;
+             /* fall through */
     case 1 : a+=k[0];
              break;
     case 0 : return c;
index 8d86cfd859cca7e11d6afa72055572d75d6965e5..254b5090e3bf4d61450e4824d3be9bd692437949 100644 (file)
@@ -115,8 +115,10 @@ void MurmurHash3_x86_32 ( const void * key, int len,
 
   switch(len & 3)
   {
-  case 3: k1 ^= tail[2] << 16;  /* fall through */
-  case 2: k1 ^= tail[1] << 8;   /* fall through */
+  case 3: k1 ^= tail[2] << 16;
+          /* fall through */
+  case 2: k1 ^= tail[1] << 8;
+          /* fall through */
   case 1: k1 ^= tail[0];
           k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1;
   };
@@ -191,27 +193,38 @@ void MurmurHash3_x86_128 ( const void * key, const int len,
 
   switch(len & 15)
   {
-  case 15: k4 ^= tail[14] << 16;  /* fall through */
-  case 14: k4 ^= tail[13] << 8;   /* fall through */
+  case 15: k4 ^= tail[14] << 16;
+           /* fall through */
+  case 14: k4 ^= tail[13] << 8;
+           /* fall through */
   case 13: k4 ^= tail[12] << 0;
            k4 *= c4; k4  = ROTL32(k4,18); k4 *= c1; h4 ^= k4;
-                                  /* fall through */
-  case 12: k3 ^= tail[11] << 24;  /* fall through */
-  case 11: k3 ^= tail[10] << 16;  /* fall through */
-  case 10: k3 ^= tail[ 9] << 8;   /* fall through */
-  case  9: k3 ^= tail[ 8] << 0;   /* fall through */
+           /* fall through */
+  case 12: k3 ^= tail[11] << 24;
+           /* fall through */
+  case 11: k3 ^= tail[10] << 16;
+           /* fall through */
+  case 10: k3 ^= tail[ 9] << 8;
+           /* fall through */
+  case  9: k3 ^= tail[ 8] << 0;
            k3 *= c3; k3  = ROTL32(k3,17); k3 *= c4; h3 ^= k3;
-                                  /* fall through */
-  case  8: k2 ^= tail[ 7] << 24;  /* fall through */
-  case  7: k2 ^= tail[ 6] << 16;  /* fall through */
-  case  6: k2 ^= tail[ 5] << 8;   /* fall through */
-  case  5: k2 ^= tail[ 4] << 0;   /* fall through */
+           /* fall through */
+  case  8: k2 ^= tail[ 7] << 24;
+           /* fall through */
+  case  7: k2 ^= tail[ 6] << 16;
+           /* fall through */
+  case  6: k2 ^= tail[ 5] << 8;
+           /* fall through */
+  case  5: k2 ^= tail[ 4] << 0;
            k2 *= c2; k2  = ROTL32(k2,16); k2 *= c3; h2 ^= k2;
-                                  /* fall through */
-  case  4: k1 ^= tail[ 3] << 24;  /* fall through */
-  case  3: k1 ^= tail[ 2] << 16;  /* fall through */
-  case  2: k1 ^= tail[ 1] << 8;   /* fall through */
-  case  1: k1 ^= tail[ 0] << 0;   /* fall through */
+           /* fall through */
+  case  4: k1 ^= tail[ 3] << 24;
+           /* fall through */
+  case  3: k1 ^= tail[ 2] << 16;
+           /* fall through */
+  case  2: k1 ^= tail[ 1] << 8;
+           /* fall through */
+  case  1: k1 ^= tail[ 0] << 0;
            k1 *= c1; k1  = ROTL32(k1,15); k1 *= c2; h1 ^= k1;
   };
 
@@ -281,23 +294,36 @@ void MurmurHash3_x64_128 ( const void * key, const int len,
 
   switch(len & 15)
   {
-  case 15: k2 ^= (uint64_t)(tail[14]) << 48;    /* fall through */
-  case 14: k2 ^= (uint64_t)(tail[13]) << 40;    /* fall through */
-  case 13: k2 ^= (uint64_t)(tail[12]) << 32;    /* fall through */
-  case 12: k2 ^= (uint64_t)(tail[11]) << 24;    /* fall through */
-  case 11: k2 ^= (uint64_t)(tail[10]) << 16;    /* fall through */
-  case 10: k2 ^= (uint64_t)(tail[ 9]) << 8;     /* fall through */
-  case  9: k2 ^= (uint64_t)(tail[ 8]) << 0;     /* fall through */
+  case 15: k2 ^= (uint64_t)(tail[14]) << 48;
+           /* fall through */
+  case 14: k2 ^= (uint64_t)(tail[13]) << 40;
+           /* fall through */
+  case 13: k2 ^= (uint64_t)(tail[12]) << 32;
+           /* fall through */
+  case 12: k2 ^= (uint64_t)(tail[11]) << 24;
+           /* fall through */
+  case 11: k2 ^= (uint64_t)(tail[10]) << 16;
+           /* fall through */
+  case 10: k2 ^= (uint64_t)(tail[ 9]) << 8;
+           /* fall through */
+  case  9: k2 ^= (uint64_t)(tail[ 8]) << 0;
            k2 *= c2; k2  = ROTL64(k2,33); k2 *= c1; h2 ^= k2;
-                                               /* fall through */
-  case  8: k1 ^= (uint64_t)(tail[ 7]) << 56;   /* fall through */
-  case  7: k1 ^= (uint64_t)(tail[ 6]) << 48;   /* fall through */
-  case  6: k1 ^= (uint64_t)(tail[ 5]) << 40;   /* fall through */
-  case  5: k1 ^= (uint64_t)(tail[ 4]) << 32;   /* fall through */
-  case  4: k1 ^= (uint64_t)(tail[ 3]) << 24;   /* fall through */
-  case  3: k1 ^= (uint64_t)(tail[ 2]) << 16;   /* fall through */
-  case  2: k1 ^= (uint64_t)(tail[ 1]) << 8;    /* fall through */
-  case  1: k1 ^= (uint64_t)(tail[ 0]) << 0;    /* fall through */
+           /* fall through */
+  case  8: k1 ^= (uint64_t)(tail[ 7]) << 56;
+           /* fall through */
+  case  7: k1 ^= (uint64_t)(tail[ 6]) << 48;
+           /* fall through */
+  case  6: k1 ^= (uint64_t)(tail[ 5]) << 40;
+           /* fall through */
+  case  5: k1 ^= (uint64_t)(tail[ 4]) << 32;
+           /* fall through */
+  case  4: k1 ^= (uint64_t)(tail[ 3]) << 24;
+           /* fall through */
+  case  3: k1 ^= (uint64_t)(tail[ 2]) << 16;
+           /* fall through */
+  case  2: k1 ^= (uint64_t)(tail[ 1]) << 8;
+           /* fall through */
+  case  1: k1 ^= (uint64_t)(tail[ 0]) << 0;
            k1 *= c1; k1  = ROTL64(k1,31); k1 *= c2; h1 ^= k1;
   };
 
index 9e3051c4d003cc62271f7bc4ad4a6f29df880da8..af12f30010608f0699255166199b7e36824a4140 100644 (file)
@@ -485,13 +485,11 @@ public:
               time_t expiration,
               uint32_t flags)
   {
-    bool retval= true;
     std::map<const std::string, std::vector<char> >::const_iterator it= key_value_map.begin();
 
     while (it != key_value_map.end())
     {
-      retval= set(it->first, it->second, expiration, flags);
-      if (retval == false)
+      if (!set(it->first, it->second, expiration, flags))
       {
         // We should tell the user what the key that failed was
         return false;
diff --git a/libmemcached.cppcheck b/libmemcached.cppcheck
new file mode 100644 (file)
index 0000000..2baa38d
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="1">
+    <builddir>.cppcheck</builddir>
+    <platform>native</platform>
+    <analyze-all-vs-configs>false</analyze-all-vs-configs>
+    <check-headers>true</check-headers>
+    <check-unused-templates>false</check-unused-templates>
+    <max-ctu-depth>10</max-ctu-depth>
+    <includedir>
+        <dir name="."/>
+    </includedir>
+    <undefines>
+        <undefine>HARD_MALLOC_TEST</undefine>
+    </undefines>
+    <paths>
+        <dir name="."/>
+    </paths>
+    <exclude>
+        <path name=".git"/>
+        <path name=".idea"/>
+        <path name=".settings"/>
+        <path name="docs"/>
+        <path name="libmemcached/csl/parser.cc"/>
+        <path name="libmemcached/csl/scanner.cc"/>
+        <path name="libmemcached/memcached"/>
+        <path name="libtest"/>
+        <path name="tests"/>
+    </exclude>
+</project>
index 16852d5b6da16038b05bb8d0938387f2808fb39c..44fb4358548177d1913d5d097e0baa7c502c840d 100644 (file)
@@ -67,7 +67,7 @@ void Context::error(const char *error_arg, yytokentype last_token, const char *l
     return;
   }
 
-  if (error_arg and strcmp(error_arg, "memory exhausted") == 0)
+  if (strcmp(error_arg, "memory exhausted") == 0)
   {
     (void)memcached_set_error(*memc, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_string_make_from_cstr(error_arg));
     return;
@@ -75,9 +75,7 @@ void Context::error(const char *error_arg, yytokentype last_token, const char *l
 
   // We now test if it is something other then a syntax error, if it  we
   // return a generic message 
-  if (error_arg and strcmp(error_arg, "syntax error") == 0)
-  { }
-  else if (error_arg)
+  if (strcmp(error_arg, "syntax error") != 0)
   {
     memcached_set_parser_error(*memc, MEMCACHED_AT, "Error occured during parsing (%s)", error_arg);
     return;
index 9575a95722eeff922dc1b770aeb47215647fe2c0..ef1d8472528531e4157d8c21fc4d37adc20504f0 100644 (file)
@@ -36,7 +36,6 @@
  */
 
 #include <libmemcached/common.h>
-#include <libmemcached/memcached/protocol_binary.h>
 
 memcached_return_t memcached_delete(memcached_st *shell, const char *key, size_t key_length,
                                     time_t expiration)
index ced9d7a2ca1eb2e7a312928d5903939924c9a01a..3de8ece52be8ef41055b1dfb88e864de77d57da3 100644 (file)
@@ -651,7 +651,7 @@ memcached_return_t memcached_server_error_return(const memcached_instance_st * p
     return MEMCACHED_INVALID_ARGUMENTS;
   }
 
-  if (ptr and ptr->error_messages)
+  if (ptr->error_messages)
   {
     return ptr->error_messages->rc;
   }
@@ -666,7 +666,7 @@ memcached_return_t memcached_instance_error_return(memcached_instance_st* instan
     return MEMCACHED_INVALID_ARGUMENTS;
   }
 
-  if (instance and instance->error_messages)
+  if (instance->error_messages)
   {
     return instance->error_messages->rc;
   }
index d2196f67d1e6524a0585f9999e2dca2facfb35e4..13c8cf315c38c1cc9e9a8d945371f995f5d495a6 100644 (file)
@@ -454,8 +454,10 @@ static memcached_return_t _io_fill(memcached_instance_st* instance)
 
       case ENOTCONN: // Programmer Error
         WATCHPOINT_ASSERT(0);
+        // fall through
       case ENOTSOCK:
         WATCHPOINT_ASSERT(0);
+        // fall through
       case EBADF:
         assert_msg(instance->fd != INVALID_SOCKET, "Programmer error, invalid socket");
         /* fall through */
@@ -587,9 +589,9 @@ memcached_return_t memcached_io_slurp(memcached_instance_st* instance)
         /* fall through */
 
       case ENOTCONN: // Programmer Error
-        assert(0);
       case ENOTSOCK:
         assert(0);
+        /* fall through */
       case EBADF:
         assert_msg(instance->fd != INVALID_SOCKET, "Invalid socket state");
         /* fall through */
index 554f6dce3852fe67011b81d8e617c5fde819cb8a..3d1e764e39c9ddc6961c604a3361c83f943dc60d 100644 (file)
@@ -534,7 +534,7 @@ static memcached_return_t binary_read_one_response(memcached_instance_st* instan
        * (only the final NOOP), so we need to increment the counter again.
        */
       memcached_server_response_increment(instance);
-      /* FALLTHROUGH */
+      /* fall through */
     case PROTOCOL_BINARY_CMD_GETK:
       {
         uint16_t keylen= header.response.keylen;
index a1e6d0a18f219b6a007fe5f0dcc1e18bf4a68b36..9e9cbd6e3476a7352c8dd8389e664775950def1b 100644 (file)
@@ -36,7 +36,6 @@
  */
 
 #include <libmemcached/common.h>
-#include <libmemcached/memcached/protocol_binary.h>
 
 static memcached_return_t ascii_touch(memcached_instance_st* instance,
                                       const char *key, size_t key_length,
index 1b99739762d40e158b63a41a0c70688ca58503f9..8f5d17383d95d3add0c7e5f0c6a693178328e8ff 100644 (file)
@@ -151,7 +151,7 @@ bool Instance::run()
         return false;
       }
       _addrinfo_next= _addrinfo_next->ai_next;
-
+      /* fall through */
 
     case CONNECT:
       close_socket();