56 lines
1018 B
Go
56 lines
1018 B
Go
// Code generated by gen.go. DO NOT EDIT.
|
|
|
|
// Copyright 2019 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build gofuzz
|
|
// +build gofuzz
|
|
|
|
package png
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
)
|
|
|
|
func Fuzz(data []byte) int {
|
|
cfg, err := DecodeConfig(bytes.NewReader(data))
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
if cfg.Width*cfg.Height > 1e6 {
|
|
return 0
|
|
}
|
|
img, err := Decode(bytes.NewReader(data))
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
levels := []CompressionLevel{
|
|
DefaultCompression,
|
|
NoCompression,
|
|
BestSpeed,
|
|
BestCompression,
|
|
}
|
|
for _, l := range levels {
|
|
var w bytes.Buffer
|
|
e := &Encoder{CompressionLevel: l}
|
|
err = e.Encode(&w, img)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
img1, err := Decode(&w)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
got := img1.Bounds()
|
|
want := img.Bounds()
|
|
if !got.Eq(want) {
|
|
fmt.Printf("bounds0: %#v\n", want)
|
|
fmt.Printf("bounds1: %#v\n", got)
|
|
panic("bounds have changed")
|
|
}
|
|
}
|
|
return 1
|
|
}
|