aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-17 16:56:39 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-17 19:09:10 +0100
commita9cc88c19f0c8907d7696b47a2b3b251a2ca06df (patch)
treeadedad6e0ff2a340c5b39bef617407f809a7e69e /tools
parentb38da77e00c6c2fb3424224657e9f665e519ea2d (diff)
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.
Diffstat (limited to 'tools')
-rw-r--r--tools/syz-benchcmp/benchcmp.go4
-rw-r--r--tools/syz-fmt/syz-fmt.go3
2 files changed, 5 insertions, 2 deletions
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)
}