diff options
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/config/config.go | 4 | ||||
| -rw-r--r-- | pkg/csource/csource_test.go | 4 | ||||
| -rw-r--r-- | pkg/db/db.go | 5 | ||||
| -rw-r--r-- | pkg/git/git.go | 2 | ||||
| -rw-r--r-- | pkg/ipc/ipc.go | 10 | ||||
| -rw-r--r-- | pkg/ipc/ipc_test.go | 4 | ||||
| -rw-r--r-- | pkg/kernel/kernel.go | 11 | ||||
| -rw-r--r-- | pkg/osutil/fileutil.go (renamed from pkg/fileutil/fileutil.go) | 8 | ||||
| -rw-r--r-- | pkg/osutil/fileutil_linux.go (renamed from pkg/fileutil/fileutil_linux.go) | 2 | ||||
| -rw-r--r-- | pkg/osutil/fileutil_test.go (renamed from pkg/fileutil/fileutil_test.go) | 4 | ||||
| -rw-r--r-- | pkg/osutil/osutil.go | 26 | ||||
| -rw-r--r-- | pkg/repro/repro.go | 6 |
12 files changed, 50 insertions, 36 deletions
diff --git a/pkg/config/config.go b/pkg/config/config.go index 537b9f3d6..c1a761e18 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -9,6 +9,8 @@ import ( "io/ioutil" "reflect" "strings" + + "github.com/google/syzkaller/pkg/osutil" ) func LoadFile(filename string, cfg interface{}) error { @@ -37,7 +39,7 @@ func SaveFile(filename string, cfg interface{}) error { if err != nil { return err } - return ioutil.WriteFile(filename, data, 0600) + return osutil.WriteFile(filename, data) } func checkUnknownFields(data []byte, typ reflect.Type) error { diff --git a/pkg/csource/csource_test.go b/pkg/csource/csource_test.go index 9357dcf65..dc703d37d 100644 --- a/pkg/csource/csource_test.go +++ b/pkg/csource/csource_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "github.com/google/syzkaller/pkg/fileutil" + "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/prog" ) @@ -123,7 +123,7 @@ func testOne(t *testing.T, p *prog.Prog, opts Options) { t.Logf("program:\n%s\n", p.Serialize()) t.Fatalf("%v", err) } - srcf, err := fileutil.WriteTempFile(src) + srcf, err := osutil.WriteTempFile(src) if err != nil { t.Logf("program:\n%s\n", p.Serialize()) t.Fatalf("%v", err) diff --git a/pkg/db/db.go b/pkg/db/db.go index 0277cb3d1..1ab76a29d 100644 --- a/pkg/db/db.go +++ b/pkg/db/db.go @@ -19,6 +19,7 @@ import ( "os" . "github.com/google/syzkaller/pkg/log" + "github.com/google/syzkaller/pkg/osutil" ) type DB struct { @@ -38,7 +39,7 @@ func Open(filename string) (*DB, error) { db := &DB{ filename: filename, } - f, err := os.OpenFile(db.filename, os.O_RDONLY|os.O_CREATE, 0640) + f, err := os.OpenFile(db.filename, os.O_RDONLY|os.O_CREATE, osutil.DefaultFilePerm) if err != nil { return nil, err } @@ -79,7 +80,7 @@ func (db *DB) Flush() error { if db.pending == nil { return nil } - f, err := os.OpenFile(db.filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0640) + f, err := os.OpenFile(db.filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, osutil.DefaultFilePerm) if err != nil { return err } diff --git a/pkg/git/git.go b/pkg/git/git.go index 29ebcbadc..a3bdcec00 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -52,7 +52,7 @@ func clone(dir, repo, branch string) error { if err := os.RemoveAll(dir); err != nil { return fmt.Errorf("failed to remove repo dir: %v", err) } - if err := os.MkdirAll(dir, 0700); err != nil { + if err := osutil.MkdirAll(dir); err != nil { return fmt.Errorf("failed to create repo dir: %v", err) } args := []string{ diff --git a/pkg/ipc/ipc.go b/pkg/ipc/ipc.go index 6c68433b6..61d48d802 100644 --- a/pkg/ipc/ipc.go +++ b/pkg/ipc/ipc.go @@ -18,7 +18,7 @@ import ( "time" "unsafe" - "github.com/google/syzkaller/pkg/fileutil" + "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/prog" ) @@ -357,7 +357,7 @@ func createMapping(size int) (f *os.File, mem []byte, err error) { } f.Close() fname := f.Name() - f, err = os.OpenFile(f.Name(), os.O_RDWR, 0) + f, err = os.OpenFile(f.Name(), os.O_RDWR, osutil.DefaultFilePerm) if err != nil { err = fmt.Errorf("failed to open shm file: %v", err) os.Remove(fname) @@ -506,7 +506,7 @@ func (c *command) close() { c.abort() c.wait() } - fileutil.UmountAll(c.dir) + osutil.UmountAll(c.dir) os.RemoveAll(c.dir) if c.inrp != nil { c.inrp.Close() @@ -669,10 +669,10 @@ func serializeUint64(buf []byte, v uint64) { var enableFaultOnce sync.Once func enableFaultInjection() { - if err := ioutil.WriteFile("/sys/kernel/debug/failslab/ignore-gfp-wait", []byte("N"), 0600); err != nil { + if err := osutil.WriteFile("/sys/kernel/debug/failslab/ignore-gfp-wait", []byte("N")); err != nil { panic(fmt.Sprintf("failed to write /sys/kernel/debug/failslab/ignore-gfp-wait: %v", err)) } - if err := ioutil.WriteFile("/sys/kernel/debug/fail_futex/ignore-private", []byte("N"), 0600); err != nil { + if err := osutil.WriteFile("/sys/kernel/debug/fail_futex/ignore-private", []byte("N")); err != nil { panic(fmt.Sprintf("failed to write /sys/kernel/debug/fail_futex/ignore-private: %v", err)) } } diff --git a/pkg/ipc/ipc_test.go b/pkg/ipc/ipc_test.go index b7d591d5d..68fbb94cd 100644 --- a/pkg/ipc/ipc_test.go +++ b/pkg/ipc/ipc_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/google/syzkaller/pkg/csource" - "github.com/google/syzkaller/pkg/fileutil" + "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/prog" ) @@ -22,7 +22,7 @@ func buildExecutor(t *testing.T) string { } func buildSource(t *testing.T, src []byte) string { - tmp, err := fileutil.WriteTempFile(src) + tmp, err := osutil.WriteTempFile(src) if err != nil { t.Fatalf("%v", err) } diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go index c38020b59..208b61815 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/kernel/kernel.go @@ -21,12 +21,11 @@ import ( "strings" "time" - "github.com/google/syzkaller/pkg/fileutil" "github.com/google/syzkaller/pkg/osutil" ) func Build(dir, compiler, config string) error { - if err := fileutil.CopyFile(config, filepath.Join(dir, ".config")); err != nil { + if err := osutil.CopyFile(config, filepath.Join(dir, ".config")); err != nil { return fmt.Errorf("failed to write config file: %v", err) } return build(dir, compiler) @@ -37,7 +36,7 @@ func BuildWithPartConfig(dir, compiler, config string) error { const timeout = 10 * time.Minute // default timeout for command invocations os.Remove(filepath.Join(dir, ".config")) configFile := filepath.Join(dir, "syz.config") - if err := ioutil.WriteFile(configFile, []byte(config), 0600); err != nil { + if err := osutil.WriteFile(configFile, []byte(config)); err != nil { return fmt.Errorf("failed to write config file: %v", err) } defer os.Remove(configFile) @@ -77,17 +76,17 @@ func CreateImage(kernelDir, userspaceDir, image, sshkey string) error { } defer os.RemoveAll(tempDir) scriptFile := filepath.Join(tempDir, "create.sh") - if err := ioutil.WriteFile(scriptFile, []byte(createImageScript), 0700); err != nil { + if err := osutil.WriteExecFile(scriptFile, []byte(createImageScript)); err != nil { return fmt.Errorf("failed to write script file: %v", err) } bzImage := filepath.Join(kernelDir, filepath.FromSlash("arch/x86/boot/bzImage")) if _, err := osutil.RunCmd(time.Hour, tempDir, scriptFile, userspaceDir, bzImage); err != nil { return fmt.Errorf("image build failed: %v", err) } - if err := fileutil.CopyFile(filepath.Join(tempDir, "disk.raw"), image); err != nil { + if err := osutil.CopyFile(filepath.Join(tempDir, "disk.raw"), image); err != nil { return err } - if err := fileutil.CopyFile(filepath.Join(tempDir, "key"), sshkey); err != nil { + if err := osutil.CopyFile(filepath.Join(tempDir, "key"), sshkey); err != nil { return err } if err := os.Chmod(sshkey, 0600); err != nil { diff --git a/pkg/fileutil/fileutil.go b/pkg/osutil/fileutil.go index 056eee50f..801453326 100644 --- a/pkg/fileutil/fileutil.go +++ b/pkg/osutil/fileutil.go @@ -1,7 +1,7 @@ // Copyright 2015 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -package fileutil +package osutil import ( "fmt" @@ -62,7 +62,7 @@ func WriteTempFile(data []byte) (string, error) { // It also cleans up old, unused temp dirs after dead processes. func ProcessTempDir(where string) (string, error) { lk := filepath.Join(where, "instance-lock") - lkf, err := syscall.Open(lk, syscall.O_RDWR|syscall.O_CREAT, 0600) + lkf, err := syscall.Open(lk, syscall.O_RDWR|syscall.O_CREAT, DefaultFilePerm) if err != nil { return "", err } @@ -75,7 +75,7 @@ func ProcessTempDir(where string) (string, error) { for i := 0; i < 1e3; i++ { path := filepath.Join(where, fmt.Sprintf("instance-%v", i)) pidfile := filepath.Join(path, ".pid") - err := os.Mkdir(path, 0700) + err := os.Mkdir(path, DefaultDirPerm) if os.IsExist(err) { // Try to clean up. data, err := ioutil.ReadFile(pidfile) @@ -98,7 +98,7 @@ func ProcessTempDir(where string) (string, error) { if err != nil { return "", err } - if err := ioutil.WriteFile(pidfile, []byte(strconv.Itoa(syscall.Getpid())), 0600); err != nil { + if err := WriteFile(pidfile, []byte(strconv.Itoa(syscall.Getpid()))); err != nil { return "", err } return path, nil diff --git a/pkg/fileutil/fileutil_linux.go b/pkg/osutil/fileutil_linux.go index 217036256..415c00353 100644 --- a/pkg/fileutil/fileutil_linux.go +++ b/pkg/osutil/fileutil_linux.go @@ -1,7 +1,7 @@ // Copyright 2017 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -package fileutil +package osutil import ( "io/ioutil" diff --git a/pkg/fileutil/fileutil_test.go b/pkg/osutil/fileutil_test.go index d432ef5e7..4db5c0d83 100644 --- a/pkg/fileutil/fileutil_test.go +++ b/pkg/osutil/fileutil_test.go @@ -1,7 +1,7 @@ // Copyright 2015 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -package fileutil +package osutil import ( "io/ioutil" @@ -31,7 +31,7 @@ func TestProcessTempDir(t *testing.T) { dirs = append(dirs, dir) } for _, dir := range dirs { - if err := ioutil.WriteFile(filepath.Join(dir, ".pid"), []byte(strconv.Itoa(999999999)), 0600); err != nil { + if err := WriteFile(filepath.Join(dir, ".pid"), []byte(strconv.Itoa(999999999))); err != nil { t.Fatalf("failed to write pid file: %v", err) } } diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go index b63fffc1e..4a411c38e 100644 --- a/pkg/osutil/osutil.go +++ b/pkg/osutil/osutil.go @@ -7,19 +7,19 @@ import ( "bytes" "fmt" "io" + "io/ioutil" "os" "os/exec" "os/signal" "path/filepath" "syscall" "time" - - "github.com/google/syzkaller/pkg/fileutil" ) const ( DefaultDirPerm = 0755 DefaultFilePerm = 0644 + DefaultExecPerm = 0755 ) // RunCmd runs "bin args..." in dir with timeout and returns its output. @@ -121,16 +121,16 @@ func CopyFiles(srcDir, dstDir string, files []string) error { if err := os.RemoveAll(tmpDir); err != nil { return err } - if err := os.MkdirAll(tmpDir, DefaultDirPerm); err != nil { + if err := MkdirAll(tmpDir); err != nil { return err } for _, f := range files { src := filepath.Join(srcDir, filepath.FromSlash(f)) dst := filepath.Join(tmpDir, filepath.FromSlash(f)) - if err := os.MkdirAll(filepath.Dir(dst), DefaultDirPerm); err != nil { + if err := MkdirAll(filepath.Dir(dst)); err != nil { return err } - if err := fileutil.CopyFile(src, dst); err != nil { + if err := CopyFile(src, dst); err != nil { return err } } @@ -147,13 +147,13 @@ func LinkFiles(srcDir, dstDir string, files []string) error { if err := os.RemoveAll(dstDir); err != nil { return err } - if err := os.MkdirAll(dstDir, DefaultDirPerm); err != nil { + if err := MkdirAll(dstDir); err != nil { return err } for _, f := range files { src := filepath.Join(srcDir, filepath.FromSlash(f)) dst := filepath.Join(dstDir, filepath.FromSlash(f)) - if err := os.MkdirAll(filepath.Dir(dst), DefaultDirPerm); err != nil { + if err := MkdirAll(filepath.Dir(dst)); err != nil { return err } if err := os.Link(src, dst); err != nil { @@ -162,3 +162,15 @@ func LinkFiles(srcDir, dstDir string, files []string) error { } return nil } + +func MkdirAll(dir string) error { + return os.MkdirAll(dir, DefaultDirPerm) +} + +func WriteFile(filename string, data []byte) error { + return ioutil.WriteFile(filename, data, DefaultFilePerm) +} + +func WriteExecFile(filename string, data []byte) error { + return ioutil.WriteFile(filename, data, DefaultExecPerm) +} diff --git a/pkg/repro/repro.go b/pkg/repro/repro.go index d3f4bc6cb..eb7316982 100644 --- a/pkg/repro/repro.go +++ b/pkg/repro/repro.go @@ -13,8 +13,8 @@ import ( "time" "github.com/google/syzkaller/pkg/csource" - "github.com/google/syzkaller/pkg/fileutil" . "github.com/google/syzkaller/pkg/log" + "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/pkg/report" "github.com/google/syzkaller/prog" "github.com/google/syzkaller/syz-manager/mgrconfig" @@ -581,7 +581,7 @@ func (ctx *context) testProgs(entries []*prog.LogEntry, duration time.Duration, } pstr := encodeEntries(entries) - progFile, err := fileutil.WriteTempFile(pstr) + progFile, err := osutil.WriteTempFile(pstr) if err != nil { return false, err } @@ -620,7 +620,7 @@ func (ctx *context) testCProg(p *prog.Prog, duration time.Duration, opts csource if err != nil { return false, err } - srcf, err := fileutil.WriteTempFile(src) + srcf, err := osutil.WriteTempFile(src) if err != nil { return false, err } |
