aboutsummaryrefslogtreecommitdiffstats
path: root/prog/analysis.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-04-18 17:09:59 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-04-19 10:26:57 +0200
commit91db3ed8ce2dc73444bcd649f8003cbe96fcb227 (patch)
tree08013bd813d8f038060db3cef25fa02eb7eb53e5 /prog/analysis.go
parent273e386b718deddf0859d1ed99e2699a9d3e2e5d (diff)
prog: add ignore_return and breaks_returns call attribtues
We had these hard-coded for fuchsia and linux accordingly. Replace with call attributes.
Diffstat (limited to 'prog/analysis.go')
-rw-r--r--prog/analysis.go7
1 files changed, 1 insertions, 6 deletions
diff --git a/prog/analysis.go b/prog/analysis.go
index 10d99a787..fe022b670 100644
--- a/prog/analysis.go
+++ b/prog/analysis.go
@@ -206,12 +206,7 @@ func (p *Prog) FallbackSignal(info []CallInfo) {
typ = fallbackSignalErrnoBlocked
}
inf.Signal = append(inf.Signal, encodeFallbackSignal(typ, id, inf.Errno))
- // seccomp filter can produce arbitrary errno values for subsequent syscalls.
- // Don't trust anything afterwards. prctl can setup seccomp too.
- // clone+ptrace combo cause fallback coverage explosion under gvisor.
- // Mechanics of that are unclear, but effect is very clear.
- if c.Meta.CallName == "seccomp" || c.Meta.CallName == "prctl" ||
- c.Meta.CallName == "clone" || c.Meta.CallName == "ptrace" {
+ if c.Meta.Attrs.BreaksReturns {
break
}
if inf.Errno != 0 {