diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-06-19 16:47:42 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-06-19 16:47:42 +0200 |
| commit | 9dcb6799c7fdc775caf10ab1df902828c290fc73 (patch) | |
| tree | f621159690c88e0d5ff590f8ea7573566260fc6f /pkg/kernel/kernel.go | |
| parent | 4799d21e019cfeebad3f8df5cbed6f9872c6bcbc (diff) | |
pkg/kernel: fix CreateImage
- Move does not work across filesystems (i.e. tmpfs->disk)
- set proper permissions for ssh key
Diffstat (limited to 'pkg/kernel/kernel.go')
| -rw-r--r-- | pkg/kernel/kernel.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go index 5992900f7..a92bc113f 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/kernel/kernel.go @@ -21,6 +21,7 @@ import ( "strings" "time" + "github.com/google/syzkaller/pkg/fileutil" "github.com/google/syzkaller/pkg/osutil" ) @@ -75,10 +76,13 @@ func CreateImage(kernelDir, userspaceDir, image, sshkey string) error { if _, err := osutil.RunCmd(time.Hour, tempDir, scriptFile, userspaceDir, bzImage); err != nil { return fmt.Errorf("image build failed: %v", err) } - if err := os.Rename(filepath.Join(tempDir, "disk.raw"), image); err != nil { + if err := fileutil.CopyFile(filepath.Join(tempDir, "disk.raw"), image); err != nil { return err } - if err := os.Rename(filepath.Join(tempDir, "key"), sshkey); err != nil { + if err := fileutil.CopyFile(filepath.Join(tempDir, "key"), sshkey); err != nil { + return err + } + if err := os.Chmod(sshkey, 0600); err != nil { return err } return nil |
