]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/dataset: fix space condition in rule lang
authorShivani Bhardwaj <shivanib134@gmail.com>
Fri, 28 Jan 2022 20:17:17 +0000 (01:47 +0530)
committerShivani Bhardwaj <shivanib134@gmail.com>
Mon, 11 Apr 2022 07:41:07 +0000 (13:11 +0530)
If there is a space following a keyword that does not expect a value,
the rule fails to load due to improper value evaluation.
e.g. Space after "set" command
alert http any any -> any any (http.user_agent; dataset:set  ,ua-seen,type string,save datasets.csv; sid:1;)

gives error
[ERRCODE: SC_ERR_UNKNOWN_VALUE(129)] - dataset action "" is not supported.

Fix this by handling values correctly for such cases.

(cherry picked from commit 6d2a2a073120906304f70c0e120565eae96e36b8)

src/detect-dataset.c

index e3de8c00cb838dea396e66ee8ec631c51149308e..e4c39596ffe29cd3e14b4039b5ff89d5f3817031 100644 (file)
@@ -134,13 +134,13 @@ static int DetectDatasetParse(const char *str, char *cmd, int cmd_len, char *nam
         }
 
         if (!cmd_set) {
-            if (val) {
+            if (val && strlen(val) != 0) {
                 return -1;
             }
             strlcpy(cmd, key, cmd_len);
             cmd_set = true;
         } else if (!name_set) {
-            if (val) {
+            if (val && strlen(val) != 0) {
                 return -1;
             }
             strlcpy(name, key, name_len);