aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/kernel
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-06-19 16:47:42 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-06-19 16:47:42 +0200
commit9dcb6799c7fdc775caf10ab1df902828c290fc73 (patch)
treef621159690c88e0d5ff590f8ea7573566260fc6f /pkg/kernel
parent4799d21e019cfeebad3f8df5cbed6f9872c6bcbc (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')
-rw-r--r--pkg/kernel/kernel.go8
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