From a9cc88c19f0c8907d7696b47a2b3b251a2ca06df Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 17 Dec 2018 16:56:39 +0100 Subject: pkg/osutil: provide better Rename os.Rename fails for cross-device renaming (e.g. to/from tmpfs). This is quite unpleasant. Provide own version that falls back to copying. --- tools/syz-benchcmp/benchcmp.go | 4 +++- tools/syz-fmt/syz-fmt.go | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/syz-benchcmp/benchcmp.go b/tools/syz-benchcmp/benchcmp.go index b34acafd7..387feb485 100644 --- a/tools/syz-benchcmp/benchcmp.go +++ b/tools/syz-benchcmp/benchcmp.go @@ -18,6 +18,8 @@ import ( "os/exec" "path/filepath" "sort" + + "github.com/google/syzkaller/pkg/osutil" ) var ( @@ -190,7 +192,7 @@ func display(graphs []*Graph) { } outf.Close() name := outf.Name() + ".html" - if err := os.Rename(outf.Name(), name); err != nil { + if err := osutil.Rename(outf.Name(), name); err != nil { failf("failed to rename file: %v", err) } if err := exec.Command("xdg-open", name).Start(); err != nil { diff --git a/tools/syz-fmt/syz-fmt.go b/tools/syz-fmt/syz-fmt.go index 3367a4344..76d6a8eae 100644 --- a/tools/syz-fmt/syz-fmt.go +++ b/tools/syz-fmt/syz-fmt.go @@ -13,6 +13,7 @@ import ( "strings" "github.com/google/syzkaller/pkg/ast" + "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/sys/targets" ) @@ -67,7 +68,7 @@ func processFile(file string, mode os.FileMode) { return } fmt.Printf("reformatting %v\n", file) - if err := os.Rename(file, file+"~"); err != nil { + if err := osutil.Rename(file, file+"~"); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } -- cgit mrf-deployment