diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2022-12-17 11:59:24 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2022-12-22 10:11:08 +0100 |
| commit | 8482d3c1035095c89d112c75bfcc2e4095b486bf (patch) | |
| tree | f2cc2b32e55fd61cbcd03d1b27693fe7c972f07b /prog/encoding.go | |
| parent | 412eecf40d514f89060844dc8631f60b80d7bfd2 (diff) | |
pkg/image: factor out from prog
Move image compression-related function to a separate package.
In preperation for subsequent changes that make decompression
more complex. Prog package is already large and complex.
Also makes running compression tests/benchmarks much faster.
Diffstat (limited to 'prog/encoding.go')
| -rw-r--r-- | prog/encoding.go | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/prog/encoding.go b/prog/encoding.go index 6b9fbe501..bfa80b983 100644 --- a/prog/encoding.go +++ b/prog/encoding.go @@ -11,6 +11,8 @@ import ( "reflect" "strconv" "strings" + + "github.com/google/syzkaller/pkg/image" ) // String generates a very compact program description (mostly for debug output). @@ -604,10 +606,10 @@ func (p *parser) parseArgString(t Type, dir Dir) (Arg, error) { } // Check compressed data for validity. if typ.IsCompressed() { - if err := DecompressWriter(ioutil.Discard, data); err != nil { + if err := image.DecompressWriter(ioutil.Discard, data); err != nil { p.strictFailf("invalid compressed data in arg: %v", err) // In non-strict mode, empty the data slice. - data = Compress(nil) + data = image.Compress(nil) } } size := ^uint64(0) @@ -887,8 +889,7 @@ func serializeData(buf *bytes.Buffer, data []byte, readable bool) { func serializeCompressedData(buf *bytes.Buffer, data []byte) { buf.WriteByte('"') buf.WriteByte('$') - encoded := EncodeB64(data) - buf.Write(encoded) + buf.Write(image.EncodeB64(data)) buf.WriteByte('"') } @@ -983,7 +984,7 @@ func (p *parser) deserializeData() ([]byte, bool, error) { rawData = append(rawData, v) } p.Parse('"') - decoded, err := DecodeB64(rawData) + decoded, err := image.DecodeB64(rawData) if err != nil { return nil, false, fmt.Errorf("data arg is corrupt: %v", err) } |
