From 9dcb6799c7fdc775caf10ab1df902828c290fc73 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 19 Jun 2017 16:47:42 +0200 Subject: pkg/kernel: fix CreateImage - Move does not work across filesystems (i.e. tmpfs->disk) - set proper permissions for ssh key --- pkg/kernel/kernel.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pkg/kernel') 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 -- cgit mrf-deployment