]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
suricata: improve list keywords
authorEric Leblond <eric@regit.org>
Wed, 10 Feb 2021 16:45:16 +0000 (17:45 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 12 Feb 2021 13:52:33 +0000 (14:52 +0100)
Exit with error if a keyword is not supported or not existing
and display a message.

src/detect-engine-register.c
src/detect-engine-register.h
src/util-running-modes.c

index 3f849125a5a0258ffca52517baa415c47d4cf99f..1ee5ef91f6979cd39a606448432e8163993a99d7 100644 (file)
@@ -351,7 +351,7 @@ static void SigMultilinePrint(int i, const char *prefix)
     printf("\n");
 }
 
-void SigTableList(const char *keyword)
+int SigTableList(const char *keyword)
 {
     size_t size = sizeof(sigmatch_table) / sizeof(SigTableElmt);
     size_t i;
@@ -414,14 +414,16 @@ void SigTableList(const char *keyword)
                 printf("= %s =\n", sigmatch_table[i].name);
                 if (sigmatch_table[i].flags & SIGMATCH_NOT_BUILT) {
                     printf("Not built-in\n");
-                    return;
+                    return TM_ECODE_FAILED;
                 }
                 SigMultilinePrint(i, "");
-                return;
+                return TM_ECODE_DONE;
             }
         }
+        printf("Non existing keyword\n");
+        return TM_ECODE_FAILED;
     }
-    return;
+    return TM_ECODE_DONE;
 }
 
 void SigTableSetup(void)
index 5e3fc5e75b4f2f04ffaccac67db1d16c1141cb65..aea54e28f0d5924f34c7f69c468b9a7bae93460f 100644 (file)
@@ -303,7 +303,7 @@ enum DetectKeywordId {
     DETECT_TBLSIZE,
 };
 
-void SigTableList(const char *keyword);
+int SigTableList(const char *keyword);
 void SigTableSetup(void);
 void SigTableRegisterTests(void);
 
index 8748c0b15d805d9b472949ee1d90042f4481719f..22b933c7afc8f1ba674f605868fbcfa9b8a66dd5 100644 (file)
@@ -36,8 +36,7 @@ int ListKeywords(const char *keyword_info)
     SpmTableSetup();
     AppLayerSetup();
     SigTableSetup(); /* load the rule keywords */
-    SigTableList(keyword_info);
-    return TM_ECODE_DONE;
+    return SigTableList(keyword_info);
 }
 
 int ListAppLayerProtocols(const char *conf_filename)