aboutsummaryrefslogtreecommitdiffstats
path: root/syz-manager
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-12-17 15:41:18 +0100
committerAleksandr Nogikh <nogikh@google.com>2024-12-20 15:38:43 +0000
commit1ac6aa80f6bb0b4deb3de864f2e1dc7b26a8ab4e (patch)
tree7bfedf72054fef3a696cbd1742edfb38df8c3878 /syz-manager
parentde01e7268bab1e7a0f9752942e38330d0509268f (diff)
pkg/osutil: add a WriteJSON helper
Diffstat (limited to 'syz-manager')
-rw-r--r--syz-manager/manager.go20
1 files changed, 8 insertions, 12 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 40c1da6e5..1c86668f1 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -688,7 +688,10 @@ func (mgr *Manager) saveCrash(crash *manager.Crash) bool {
log.Logf(0, "VM %v: crash: %v%v", crash.InstanceIndex, crash.Title, flags)
if mgr.mode.FailOnCrashes {
- mgr.saveJSON("report.json", crash.Report)
+ path := filepath.Join(mgr.cfg.Workdir, "report.json")
+ if err := osutil.WriteJSON(path, crash.Report); err != nil {
+ log.Fatal(err)
+ }
log.Fatalf("kernel crashed in smoke testing mode, exiting")
}
@@ -742,16 +745,6 @@ func (mgr *Manager) saveCrash(crash *manager.Crash) bool {
return mgr.NeedRepro(crash)
}
-func (mgr *Manager) saveJSON(filename string, object any) {
- data, err := json.MarshalIndent(object, "", "\t")
- if err != nil {
- log.Fatalf("failed to serialize json data: %v", err)
- }
- if err := osutil.WriteFile(filepath.Join(mgr.cfg.Workdir, filename), data); err != nil {
- log.Fatal(err)
- }
-}
-
func (mgr *Manager) needLocalRepro(crash *manager.Crash) bool {
if !mgr.cfg.Reproduce || crash.Corrupted || crash.Suppressed {
return false
@@ -1197,7 +1190,10 @@ func (mgr *Manager) MachineChecked(features flatrpc.Feature, enabledSyscalls map
if err != nil {
log.Fatalf("interface probing failed: %v", err)
}
- mgr.saveJSON("interfaces.json", res)
+ path := filepath.Join(mgr.cfg.Workdir, "interfaces.json")
+ if err := osutil.WriteJSON(path, res); err != nil {
+ log.Fatal(err)
+ }
mgr.exit("interface probe")
}()
return exec