]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
Bug fix/clang tidy warnings part2 (#296)
authorgtsoul-tech <56584633+gtsoul-tech@users.noreply.github.com>
Tue, 4 Jun 2024 13:18:17 +0000 (16:18 +0300)
committerGitHub <noreply@github.com>
Tue, 4 Jun 2024 13:18:17 +0000 (16:18 +0300)
* core.StackAddressEscape

* cplusplus.VirtualCall

* clang-analyzer-deadcode.DeadStores

* clang-analyzer-core.NullDereference

* clang-analyzer-core.NonNullParamChecker

* change to nolint

---------

Co-authored-by: gtsoul-tech <gtsoulkanakis@gmail.com>
src/nfagraph/ng_limex.cpp
src/parser/buildstate.cpp
src/scratch.c
src/util/multibit.h
src/util/partial_store.h
src/util/unaligned.h
tools/hsbench/data_corpus.cpp
tools/hsbench/main.cpp
tools/hsbench/sqldb.cpp
tools/hscheck/main.cpp

index e7c28b18ac4ff4132e4a35e17ec0a4f54c1b0688..0160f6ea1ac8508eb111c51281706a167f361f1c 100644 (file)
@@ -677,7 +677,7 @@ constructNFA(const NGHolder &h_in, const ReportManager *rm,
 
     if (has_managed_reports(*h)) {
         assert(rm);
-        remapReportsToPrograms(*h, *rm);
+        remapReportsToPrograms(*h, *rm);    //NOLINT (clang-analyzer-core.NonNullParamChecker)
     }
 
     if (!cc.streaming || !cc.grey.compressNFAState) {
index 871f1180bb9a92f59857551ca9d01d67a4ebe7c9..8b09c3d0f31894135db142a18e28e8a6654b7e78 100644 (file)
@@ -158,7 +158,7 @@ GlushkovBuildStateImpl::GlushkovBuildStateImpl(NFABuilder &b,
     lasts.emplace_back(startState);
     lasts.emplace_back(startDotstarState);
     firsts.emplace_back(startDotstarState);
-    connectRegions(lasts, firsts);
+    connectRegions(lasts, firsts);  //NOLINT    (cplusplus.VirtualCall)
 
     // accept to acceptEod edges already wired
 
@@ -341,7 +341,7 @@ void GlushkovBuildStateImpl::connectSuccessors(const PositionInfo &from,
             Position fakedot = builder.makePositions(1);
             builder.addCharReach(fakedot, CharReach(0x00, 0xff));
             builder.setNodeReportID(fakedot, -1);
-            addSuccessor(fakedot, acceptState);
+            addSuccessor(fakedot, acceptState); //NOLINT    (cplusplus.VirtualCall)
             *accept = fakedot;
         } else {
             // We might lead to accept via an assertion vertex, so we add the
index aa15547b18b622ff36d15a23894729578e120ef5..93c014521ddfdee6f53f863b58dd3832936167f7 100644 (file)
@@ -225,7 +225,7 @@ hs_error_t alloc_scratch(const hs_scratch_t *proto, hs_scratch_t **scratch) {
     assert(ISALIGNED_CL(current));
     s->fullState = (char *)current;
     s->fullStateSize = fullStateSize;
-    current += fullStateSize;
+    current += fullStateSize;   //NOLINT (clang-analyzer-deadcode.DeadStores)
 
     *scratch = s;
 
index 3ec45d6ff3d8c95130a6cb471d14b16a35c66d20..3c8be2b515a597e9fb26812f7a50eabb91ef0c8a 100644 (file)
@@ -345,9 +345,10 @@ void mmbit_clear(u8 *bits, u32 total_bits) {
 /** \brief Specialisation of \ref mmbit_set for flat models. */
 static really_inline
 char mmbit_set_flat(u8 *bits, u32 total_bits, u32 key) {
+    assert(bits);
     bits += mmbit_flat_select_byte(key, total_bits);
     u8 mask = 1U << (key % 8);
-    char was_set = !!(*bits & mask);
+    char was_set = !!(*bits & mask);    //NOLINT (clang-analyzer-core.NullDereference)
     *bits |= mask;
     return was_set;
 }
index a75a1be6f05bf86c4dbaea93c404618de3ba2b87..077ebe8375f328a03ea5c9776cd9134fd39ac6c4 100644 (file)
@@ -36,6 +36,7 @@
 
 static really_inline
 void partial_store_u32(void *ptr, u32 value, u32 numBytes) {
+    assert(ptr);
     assert(numBytes <= 4);
     switch (numBytes) {
     case 4:
@@ -61,6 +62,7 @@ void partial_store_u32(void *ptr, u32 value, u32 numBytes) {
 static really_inline
 u32 partial_load_u32(const void *ptr, u32 numBytes) {
     u32 value;
+    assert(ptr);
     assert(numBytes <= 4);
     switch (numBytes) {
     case 4:
@@ -87,6 +89,7 @@ u32 partial_load_u32(const void *ptr, u32 numBytes) {
 
 static really_inline
 void partial_store_u64a(void *ptr, u64a value, u32 numBytes) {
+    assert(ptr);
     assert(numBytes <= 8);
     switch (numBytes) {
     case 8:
@@ -132,6 +135,7 @@ void partial_store_u64a(void *ptr, u64a value, u32 numBytes) {
 static really_inline
 u64a partial_load_u64a(const void *ptr, u32 numBytes) {
     u64a value;
+    assert(ptr);
     assert(numBytes <= 8);
     switch (numBytes) {
     case 8:
index 661750a7e09f616e8493d0574801692e2b7f3dc6..890f854e1eedb3b0f90c538f069dd5eb51079b60 100644 (file)
 /// Perform an unaligned 16-bit load
 static really_inline
 u16 unaligned_load_u16(const void *ptr) {
+    assert(ptr);
     struct unaligned { u16 u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     const struct unaligned *uptr = (const struct unaligned *)ptr;
-    return uptr->u;
+    return uptr->u;     //NOLINT    (clang-analyzer-core.NullDereference)
 }
 
 /// Perform an unaligned 32-bit load
 static really_inline
 u32 unaligned_load_u32(const void *ptr) {
+    assert(ptr);
     struct unaligned { u32 u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     const struct unaligned *uptr = (const struct unaligned *)ptr;
-    return uptr->u;
+    return uptr->u;     //NOLINT    (clang-analyzer-core.NullDereference)
 }
 
 /// Perform an unaligned 64-bit load
 static really_inline
 u64a unaligned_load_u64a(const void *ptr) {
-    if (ptr == NULL) {
-        return 0;  // Return a default value
-    }
+    assert(ptr);
     struct unaligned { u64a u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     const struct unaligned *uptr = (const struct unaligned *)ptr;
-    return uptr->u;
+    return uptr->u;     //NOLINT (clang-analyzer-core.uninitialized.UndefReturn)
 }
 
 /// Perform an unaligned 16-bit store
 static really_inline
 void unaligned_store_u16(void *ptr, u16 val) {
+    assert(ptr);
     struct unaligned { u16 u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     struct unaligned *uptr = (struct unaligned *)ptr;
@@ -79,6 +80,7 @@ void unaligned_store_u16(void *ptr, u16 val) {
 /// Perform an unaligned 32-bit store
 static really_inline
 void unaligned_store_u32(void *ptr, u32 val) {
+    assert(ptr);
     struct unaligned { u32 u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     struct unaligned *uptr = (struct unaligned *)ptr;
@@ -88,6 +90,7 @@ void unaligned_store_u32(void *ptr, u32 val) {
 /// Perform an unaligned 64-bit store
 static really_inline
 void unaligned_store_u64a(void *ptr, u64a val) {
+    assert(ptr);
     struct unaligned { u64a u; } PACKED__MAY_ALIAS;
     // cppcheck-suppress cstyleCast
     struct unaligned *uptr = (struct unaligned *)ptr;
index 24ff541a8b42495e245cf6687e6fda1ef6f1281b..008aacca5cb34cf01ef8c384e5c979277219d8b3 100644 (file)
@@ -78,7 +78,7 @@ vector<DataBlock> readCorpus(const string &filename) {
         ostringstream err;
         err << "Unable to open database '" << filename << "': "
             << sqlite3_errmsg(db);
-        status = sqlite3_close(db);
+        status = sqlite3_close(db); //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
         throw DataCorpusError(err.str());
     }
@@ -91,9 +91,9 @@ vector<DataBlock> readCorpus(const string &filename) {
     status = sqlite3_prepare_v2(db, query.c_str(), query.size(), &statement,
                                 nullptr);
     if (status != SQLITE_OK) {
-        status = sqlite3_finalize(statement);
+        status = sqlite3_finalize(statement);   //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
-        status = sqlite3_close(db);
+        status = sqlite3_close(db);         //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
 
         ostringstream oss;
@@ -115,17 +115,17 @@ vector<DataBlock> readCorpus(const string &filename) {
         oss << "Error retrieving blocks from corpus: "
             << sqlite3_errmsg(db);
 
-        status = sqlite3_finalize(statement);
+        status = sqlite3_finalize(statement);   //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
-        status = sqlite3_close(db);
+        status = sqlite3_close(db);             //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
 
         throw DataCorpusError(oss.str());
     }
 
-    status = sqlite3_finalize(statement);
+    status = sqlite3_finalize(statement);       //NOLINT (clang-analyzer-deadcode.DeadStores)
     assert(status == SQLITE_OK);
-    status = sqlite3_close(db);
+    status = sqlite3_close(db);                 //NOLINT (clang-analyzer-deadcode.DeadStores)
     assert(status == SQLITE_OK);
 
     if (blocks.empty()) {
index d0533ad6c3836479c33bb1e314245b9812b62954..a7b62804a686a278239980fbed5c3bf8e346d097 100644 (file)
@@ -234,13 +234,13 @@ void processArgs(int argc, char *argv[], vector<BenchmarkSigs> &sigSets,
 #endif
         ;
     int in_sigfile = 0;
-    int do_per_scan = 0;
-    int do_compress = 0;
+    static int do_per_scan = 0;
+    static int do_compress = 0;
     int do_compress_size = 0;
-    int do_echo_matches = 0;
-    int do_sql_output = 0;
+    static int do_echo_matches = 0;
+    static int do_sql_output = 0;
     int option_index = 0;
-    int literalFlag = 0;
+    static int literalFlag = 0;
     vector<string> sigFiles;
 
     static struct option longopts[] = {
index eb974cb9b0ff54bfb403183f0aa8506898047ea3..6a054ed541f25f0b9f66536a26da9f58d07f8fcb 100644 (file)
@@ -56,7 +56,7 @@ sqlite3 *initDB(const string &filename) {
         ostringstream oss;
         oss << "Unable to open database '" << filename
             << "': " << sqlite3_errmsg(db);
-        status = sqlite3_close(db);
+        status = sqlite3_close(db);     //NOLINT (clang-analyzer-deadcode.DeadStores)
         assert(status == SQLITE_OK);
         throw SqlFailure(oss.str());
     }
@@ -115,7 +115,7 @@ sqlite3 *initDB(const string &filename) {
 fail:
     ostringstream oss;
     oss << "Unable to create tables: " << sqlite3_errmsg(db);
-    status = sqlite3_close(db);
+    status = sqlite3_close(db); //NOLINT (clang-analyzer-deadcode.DeadStores)
     assert(status == SQLITE_OK);
     throw SqlFailure(oss.str());
 }
index 6ee1493024d17d38cb3b003f94687b36d8f1e2a7..918fe7854aff398fa76773059b0123ff5555945f 100644 (file)
@@ -494,7 +494,7 @@ static
 void processArgs(int argc, char *argv[], UNUSED const unique_ptr<Grey> &grey) {
     const char options[] = "e:E:s:z:hHLNV8G:T:BC";
     bool signatureSet = false;
-    int literalFlag = 0;
+    static int literalFlag = 0;
 
     static struct option longopts[] = {
         {"literal-on", no_argument, &literalFlag, 1},