aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/osutil
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2022-09-15 13:45:45 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2022-09-27 13:07:37 +0200
commit75c78242e3cb60e13282fa7040f13832f573320e (patch)
tree805f9968ecac48e8c4a10ab83aadcad17f8036a4 /pkg/osutil
parent2b420c9686b7c95216d491a97fcd5158acb810f2 (diff)
syz-manager: extract fs images from reproducers
Diffstat (limited to 'pkg/osutil')
-rw-r--r--pkg/osutil/osutil.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go
index 7eb033652..c07c6372b 100644
--- a/pkg/osutil/osutil.go
+++ b/pkg/osutil/osutil.go
@@ -5,8 +5,10 @@ package osutil
import (
"bytes"
+ "compress/gzip"
"context"
"fmt"
+ "io"
"io/ioutil"
"os"
"os/exec"
@@ -269,6 +271,18 @@ func WriteFile(filename string, data []byte) error {
return ioutil.WriteFile(filename, data, DefaultFilePerm)
}
+func WriteGzipStream(filename string, reader io.Reader) error {
+ f, err := os.Create(filename)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ gz := gzip.NewWriter(f)
+ defer gz.Close()
+ _, err = io.Copy(gz, reader)
+ return err
+}
+
func WriteExecFile(filename string, data []byte) error {
os.Remove(filename)
return ioutil.WriteFile(filename, data, DefaultExecPerm)