Skip to content

Commit 05bf6f5

Browse files
filters: add error files
1 parent 4f8684a commit 05bf6f5

File tree

3 files changed

+54
-7
lines changed

3 files changed

+54
-7
lines changed

cmd/tracee-ebpf/flags/errors.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package flags
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
func InvalidSetError(set string) error {
8+
return fmt.Errorf("invalid set to trace: %s", set)
9+
}
10+
11+
func InvalidEventError(event string) error {
12+
return fmt.Errorf("invalid event to trace: %s", event)
13+
}
14+
15+
func InvalidEventExcludeError(event string) error {
16+
return fmt.Errorf("invalid event to exclude: %s", event)
17+
}
18+
19+
func InvalidFilterOptionError(expr string) error {
20+
return fmt.Errorf("invalid filter option specified (%s), use '--trace help' for more info", expr)
21+
}

cmd/tracee-ebpf/flags/filter.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package flags
22

33
import (
4-
"fmt"
54
"strings"
65

76
tracee "github.com/aquasecurity/tracee/pkg/ebpf"
@@ -121,6 +120,10 @@ func PrepareFilter(filtersArr []string) (tracee.Filter, error) {
121120
operatorAndValues = f[operatorIndex:]
122121
}
123122

123+
if len(operatorAndValues) == 1 || operatorAndValues == "!=" || operatorAndValues == "<=" || operatorAndValues == ">=" {
124+
return tracee.Filter{}, filters.InvalidExpression(f)
125+
}
126+
124127
if strings.Contains(f, ".retval") {
125128
err := filter.RetFilter.Parse(filterName, operatorAndValues, eventsNameToID)
126129
if err != nil {
@@ -262,7 +265,7 @@ func PrepareFilter(filtersArr []string) (tracee.Filter, error) {
262265
filter.Follow = true
263266
continue
264267
}
265-
return tracee.Filter{}, fmt.Errorf("invalid filter option specified, use '--trace help' for more info")
268+
return tracee.Filter{}, InvalidFilterOptionError(f)
266269
}
267270

268271
var err error
@@ -300,12 +303,12 @@ func prepareEventsToTrace(eventFilter *filters.StringFilter, setFilter *filters.
300303
}
301304
}
302305
if !found {
303-
return nil, fmt.Errorf("invalid event to exclude: %s", name)
306+
return nil, InvalidEventExcludeError(name)
304307
}
305308
} else {
306309
id, ok := eventsNameToID[name]
307310
if !ok {
308-
return nil, fmt.Errorf("invalid event to exclude: %s", name)
311+
return nil, InvalidEventExcludeError(name)
309312
}
310313
isExcluded[id] = true
311314
}
@@ -328,21 +331,21 @@ func prepareEventsToTrace(eventFilter *filters.StringFilter, setFilter *filters.
328331
}
329332
}
330333
if !found {
331-
return nil, fmt.Errorf("invalid event to trace: %s", name)
334+
return nil, InvalidEventError(name)
332335
}
333336
res = append(res, ids...)
334337
} else {
335338
id, ok := eventsNameToID[name]
336339
if !ok {
337-
return nil, fmt.Errorf("invalid event to trace: %s", name)
340+
return nil, InvalidEventError(name)
338341
}
339342
res = append(res, id)
340343
}
341344
}
342345
for _, set := range setsToTrace {
343346
setEvents, ok := setsToEvents[set]
344347
if !ok {
345-
return nil, fmt.Errorf("invalid set to trace: %s", set)
348+
return nil, InvalidSetError(set)
346349
}
347350
for _, id := range setEvents {
348351
if !isExcluded[id] {

pkg/filters/errors.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package filters
2+
3+
import "fmt"
4+
5+
func UnsupportedOperator(op Operator) error {
6+
return fmt.Errorf("failed to add filter: unsupported operator %s", op.String())
7+
}
8+
9+
func InvalidExpression(expression string) error {
10+
return fmt.Errorf("invalid filter expression: %s", expression)
11+
}
12+
13+
func InvalidValue(value string) error {
14+
return fmt.Errorf("invalid filter value %s", value)
15+
}
16+
17+
func InvalidEventName(event string) error {
18+
return fmt.Errorf("invalid event name in filter: %s", event)
19+
}
20+
21+
func InvalidEventArgument(argument string) error {
22+
return fmt.Errorf("invalid filter event argument: %s", argument)
23+
}

0 commit comments

Comments
 (0)