aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-db
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-06 16:49:37 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-06 16:49:37 +0100
commitc1641491e47613ad780871c3c996fe8025b97708 (patch)
treefc7037a9a2c9af9cb647c05fd3d5ca835463ebe4 /tools/syz-db
parentd68400a8d17b612757bb456754601b8975a18e06 (diff)
pkg/db: provide helper function for database creation
This is needed for both tools/syz-db and tools/syz-trace2syz. Also, remove code to resolve SHA1 collisions. Also, don't set db version as we actually want to minimize and smash these programs like anything else (not minimizing nor smashing them is only useful during tool testing).
Diffstat (limited to 'tools/syz-db')
-rw-r--r--tools/syz-db/syz-db.go18
1 files changed, 7 insertions, 11 deletions
diff --git a/tools/syz-db/syz-db.go b/tools/syz-db/syz-db.go
index ecf85495c..6aa96a0c0 100644
--- a/tools/syz-db/syz-db.go
+++ b/tools/syz-db/syz-db.go
@@ -60,14 +60,7 @@ func pack(dir, file string, target *prog.Target, version uint64) {
if err != nil {
failf("failed to read dir: %v", err)
}
- os.Remove(file)
- db, err := db.Open(file)
- if err != nil {
- failf("failed to open database file: %v", err)
- }
- if err := db.BumpVersion(version); err != nil {
- failf("failed to bump database version: %v", err)
- }
+ var records []db.Record
for _, file := range files {
data, err := ioutil.ReadFile(filepath.Join(dir, file.Name()))
if err != nil {
@@ -93,10 +86,13 @@ func pack(dir, file string, target *prog.Target, version uint64) {
fmt.Fprintf(os.Stderr, "fixing hash %v -> %v\n", key, sig)
key = sig
}
- db.Save(key, data, seq)
+ records = append(records, db.Record{
+ Val: data,
+ Seq: seq,
+ })
}
- if err := db.Flush(); err != nil {
- failf("failed to save database file: %v", err)
+ if err := db.Create(file, version, records); err != nil {
+ failf("%v", err)
}
}