Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/detect-parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -1822,6 +1822,10 @@ static int SigParseActionDo(const char *action_in, const int idx, const bool fw_
"rules");
return -1;
}
if (idx > 0 && (flags & ACTION_PASS) && !(*action_out & ACTION_ACCEPT)) {
Comment thread
lukashino marked this conversation as resolved.
SCLogError("'pass' is only supported as a secondary action for 'accept'");
return -1;
Comment thread
lukashino marked this conversation as resolved.
}
}

/* parse scope, if any */
Expand Down Expand Up @@ -1873,6 +1877,14 @@ static int SigParseActionDo(const char *action_in, const int idx, const bool fw_
return -1;
}
*scope_out = scope_flags;
} else if (*scope_out != 0 && (flags & ACTION_PASS)) {
/* No scope given, this action inherits the scope set by the preceding
* actions of a multi-action rule. */
if (*scope_out != ACTION_SCOPE_PACKET && *scope_out != ACTION_SCOPE_FLOW) {
SCLogError("invalid action scope '%s' in action '%s': only 'packet' and 'flow' allowed",
ActionScopeToString((enum ActionScope) * scope_out), action_in);
return -1;
}
}

/* require explicit action scope for fw rules */
Expand Down
Loading