diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-11-25 11:55:36 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-11-26 09:04:16 +0000 |
| commit | a188cd36e162cc98a3f0cdbeb062bac2e7fa185d (patch) | |
| tree | a43192bd56899aa5c534128ff18510958dfc5c6d /prog | |
| parent | d1656bfaa236ca8bb0ce36693aa283a568c62bd8 (diff) | |
tools/syz-execprog: support running unsafe programs
Diffstat (limited to 'prog')
| -rw-r--r-- | prog/parse.go | 4 | ||||
| -rw-r--r-- | prog/parse_test.go | 8 | ||||
| -rw-r--r-- | prog/test/fuzz.go | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/prog/parse.go b/prog/parse.go index bad2dcecc..324a74911 100644 --- a/prog/parse.go +++ b/prog/parse.go @@ -17,7 +17,7 @@ type LogEntry struct { End int // end offset in log } -func (target *Target) ParseLog(data []byte) []*LogEntry { +func (target *Target) ParseLog(data []byte, mode DeserializeMode) []*LogEntry { var entries []*LogEntry ent := &LogEntry{ ID: -1, @@ -61,7 +61,7 @@ func (target *Target) ParseLog(data []byte) []*LogEntry { tmp := append(cur, line...) - p, err := target.Deserialize(tmp, NonStrict) + p, err := target.Deserialize(tmp, mode) if err != nil { continue } diff --git a/prog/parse_test.go b/prog/parse_test.go index 37bc7771e..7fe36ae6c 100644 --- a/prog/parse_test.go +++ b/prog/parse_test.go @@ -18,7 +18,7 @@ func TestParseSingle(t *testing.T) { const execLog = `getpid() gettid() ` - entries := target.ParseLog([]byte(execLog)) + entries := target.ParseLog([]byte(execLog), NonStrict) if len(entries) != 1 { t.Fatalf("got %v programs, want 1", len(entries)) } @@ -48,7 +48,7 @@ func TestParseMulti(t *testing.T) { if err != nil { t.Fatal(err) } - entries := target.ParseLog([]byte(execLogNew)) + entries := target.ParseLog([]byte(execLogNew), NonStrict) validateProgs(t, entries, len(execLogNew)) if entries[0].ID != -1 || entries[1].ID != 70 || @@ -65,7 +65,7 @@ func TestParseMultiLegacy(t *testing.T) { if err != nil { t.Fatal(err) } - entries := target.ParseLog([]byte(execLogOld)) + entries := target.ParseLog([]byte(execLogOld), NonStrict) validateProgs(t, entries, len(execLogOld)) for _, ent := range entries { assert.Equal(t, -1, ent.ID) @@ -166,7 +166,7 @@ func TestParseFault(t *testing.T) { gettid() getpid() ` - entries := target.ParseLog([]byte(execLog)) + entries := target.ParseLog([]byte(execLog), NonStrict) if len(entries) != 1 { t.Fatalf("got %v programs, want 1", len(entries)) } diff --git a/prog/test/fuzz.go b/prog/test/fuzz.go index ab2582cbe..9b47234b3 100644 --- a/prog/test/fuzz.go +++ b/prog/test/fuzz.go @@ -58,7 +58,7 @@ func FuzzDeserialize(data []byte) int { } func FuzzParseLog(data []byte) int { - if len(fuzzTarget.ParseLog(data)) != 0 { + if len(fuzzTarget.ParseLog(data, prog.NonStrict)) != 0 { return 1 } return 0 |
