diff options
| author | Veronica Radu <veronicaradu@google.com> | 2019-09-09 19:22:04 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-09-23 15:35:26 +0200 |
| commit | 5a7028d005c1b6be0aa0288ea1bcf3fdd1163560 (patch) | |
| tree | e3b2a828ee8d6284cf4a95c94d0170abd3024659 /pkg/db | |
| parent | bf7e28925b8894ca13f803f66d16cf2b0ae12430 (diff) | |
pkg/db: moved ReadCorpus function to avoid duplicate code
Diffstat (limited to 'pkg/db')
| -rw-r--r-- | pkg/db/db.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/pkg/db/db.go b/pkg/db/db.go index e3492031b..17723b224 100644 --- a/pkg/db/db.go +++ b/pkg/db/db.go @@ -21,6 +21,7 @@ import ( "github.com/google/syzkaller/pkg/hash" "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/osutil" + "github.com/google/syzkaller/prog" ) type DB struct { @@ -283,3 +284,21 @@ func Create(filename string, version uint64, records []Record) error { } return nil } + +func ReadCorpus(filename string, target *prog.Target) (progs []*prog.Prog, err error) { + if filename == "" { + return + } + db, err := Open(filename) + if err != nil { + return nil, fmt.Errorf("failed to open database file: %v", err) + } + for _, rec := range db.Records { + p, err := target.Deserialize(rec.Val, prog.NonStrict) + if err != nil { + return nil, fmt.Errorf("failed to deserialize corpus program: %v", err) + } + progs = append(progs, p) + } + return progs, nil +} |
