aboutsummaryrefslogtreecommitdiffstats
path: root/syz-hub
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-01-31 08:41:02 +0100
committerDmitry Vyukov <dvyukov@google.com>2022-02-01 10:36:21 +0100
commitc1c1631dc5fb629cdde3d49f7a2393a63d595957 (patch)
tree0f44dd0e5ec4da00552fd7847dfdccec149715a5 /syz-hub
parent6b7c57fe456c070981403f31bb6dfcb2ad2a92c3 (diff)
pkg/db: make repair of the db file optional
It was too radical to repair and overwrite db file unconditionally. syz-execprog probes if a given file is a database. Usually it's a crash log or a single program, but db.Open started to overwrite it. And an explicit repair flag in db.Open and enable it only in syz-manager and syz-hub. Fixes #2997
Diffstat (limited to 'syz-hub')
-rw-r--r--syz-hub/state/state.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/syz-hub/state/state.go b/syz-hub/state/state.go
index 44b416d6d..1c7105003 100644
--- a/syz-hub/state/state.go
+++ b/syz-hub/state/state.go
@@ -102,7 +102,7 @@ func (st *State) Flush() {
func loadDB(file, name string, progs bool) (*db.DB, uint64, error) {
log.Logf(0, "reading %v...", name)
- db, err := db.Open(file)
+ db, err := db.Open(file, true)
if err != nil {
return nil, 0, fmt.Errorf("failed to open %v database: %v", name, err)
}
@@ -198,7 +198,7 @@ func (st *State) Connect(name, domain string, fresh bool, calls []string, corpus
os.Remove(mgr.corpusFile)
var err error
- mgr.Corpus, err = db.Open(mgr.corpusFile)
+ mgr.Corpus, err = db.Open(mgr.corpusFile, true)
if err != nil {
log.Logf(0, "failed to open corpus database: %v", err)
return err