summaryrefslogtreecommitdiff
path: root/bin/systrace/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'bin/systrace/parse.y')
-rw-r--r--bin/systrace/parse.y13
1 files changed, 12 insertions, 1 deletions
diff --git a/bin/systrace/parse.y b/bin/systrace/parse.y
index 8391b675407..9c55f398147 100644
--- a/bin/systrace/parse.y
+++ b/bin/systrace/parse.y
@@ -50,6 +50,7 @@ int filter_stringmatch(struct intercept_translate *, struct logic *);
int filter_negstringmatch(struct intercept_translate *, struct logic *);
int filter_substrmatch(struct intercept_translate *, struct logic *);
int filter_negsubstrmatch(struct intercept_translate *, struct logic *);
+int filter_inpath(struct intercept_translate *, struct logic *);
int filter_true(struct intercept_translate *, struct logic *);
struct logic *parse_newsymbol(char *, int, char *);
@@ -63,7 +64,7 @@ struct filter *myfilter;
%}
%token AND OR NOT LBRACE RBRACE LSQBRACE RSQBRACE THEN MATCH PERMIT DENY
-%token EQ NEQ TRUE SUB NSUB
+%token EQ NEQ TRUE SUB NSUB INPATH
%token <string> STRING
%token <string> CMDSTRING
%token <number> NUMBER
@@ -226,6 +227,16 @@ symbol : STRING typeoff MATCH CMDSTRING
node->filter_match = filter_negsubstrmatch;
$$ = node;
}
+ | STRING typeoff INPATH CMDSTRING
+{
+ struct logic *node;
+
+ if ((node = parse_newsymbol($1, $2, $4)) == NULL)
+ break;
+
+ node->filter_match = filter_inpath;
+ $$ = node;
+}
| TRUE
{
struct logic *node;