fuzz.go 549 B

123456789101112131415161718192021222324252627282930
  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. // +build gofuzz
  6. package tiff
  7. import "bytes"
  8. func Fuzz(data []byte) int {
  9. cfg, err := DecodeConfig(bytes.NewReader(data))
  10. if err != nil {
  11. return 0
  12. }
  13. if cfg.Width*cfg.Height > 1e6 {
  14. return 0
  15. }
  16. img, err := Decode(bytes.NewReader(data))
  17. if err != nil {
  18. return 0
  19. }
  20. var w bytes.Buffer
  21. err = Encode(&w, img, nil)
  22. if err != nil {
  23. panic(err)
  24. }
  25. return 1
  26. }