fuzz.go 532 B

1234567891011121314151617181920212223242526272829
  1. // Copyright 2019 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. //go:build gofuzz
  5. package tiff
  6. import "bytes"
  7. func Fuzz(data []byte) int {
  8. cfg, err := DecodeConfig(bytes.NewReader(data))
  9. if err != nil {
  10. return 0
  11. }
  12. if cfg.Width*cfg.Height > 1e6 {
  13. return 0
  14. }
  15. img, err := Decode(bytes.NewReader(data))
  16. if err != nil {
  17. return 0
  18. }
  19. var w bytes.Buffer
  20. err = Encode(&w, img, nil)
  21. if err != nil {
  22. panic(err)
  23. }
  24. return 1
  25. }