From c1c1631dc5fb629cdde3d49f7a2393a63d595957 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 31 Jan 2022 08:41:02 +0100 Subject: 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 --- syz-hub/state/state.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'syz-hub') 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 -- cgit mrf-deployment