aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/config/config.go4
-rw-r--r--pkg/csource/csource_test.go4
-rw-r--r--pkg/db/db.go5
-rw-r--r--pkg/git/git.go2
-rw-r--r--pkg/ipc/ipc.go10
-rw-r--r--pkg/ipc/ipc_test.go4
-rw-r--r--pkg/kernel/kernel.go11
-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.go26
-rw-r--r--pkg/repro/repro.go6
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
}