diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-04-18 17:09:59 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-04-19 10:26:57 +0200 |
| commit | 91db3ed8ce2dc73444bcd649f8003cbe96fcb227 (patch) | |
| tree | 08013bd813d8f038060db3cef25fa02eb7eb53e5 /prog/analysis.go | |
| parent | 273e386b718deddf0859d1ed99e2699a9d3e2e5d (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.go | 7 |
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 { |
