summaryrefslogtreecommitdiff
path: root/vendor
diff options
context:
space:
mode:
Diffstat (limited to 'vendor')
-rw-r--r--vendor/golang.org/x/image/tiff/reader.go12
-rw-r--r--vendor/modules.txt2
2 files changed, 11 insertions, 3 deletions
diff --git a/vendor/golang.org/x/image/tiff/reader.go b/vendor/golang.org/x/image/tiff/reader.go
index 0ad155290..1b8fcb859 100644
--- a/vendor/golang.org/x/image/tiff/reader.go
+++ b/vendor/golang.org/x/image/tiff/reader.go
@@ -36,7 +36,10 @@ func (e UnsupportedError) Error() string {
return "tiff: unsupported feature: " + string(e)
}
-var errNoPixels = FormatError("not enough pixel data")
+var (
+ errNoPixels = FormatError("not enough pixel data")
+ errInvalidColorIndex = FormatError("invalid color index")
+)
const maxChunkSize = 10 << 20 // 10M
@@ -337,13 +340,18 @@ func (d *decoder) decode(dst image.Image, xmin, ymin, xmax, ymax int) error {
}
case mPaletted:
img := dst.(*image.Paletted)
+ pLen := len(d.palette)
for y := ymin; y < rMaxY; y++ {
for x := xmin; x < rMaxX; x++ {
v, ok := d.readBits(d.bpp)
if !ok {
return errNoPixels
}
- img.SetColorIndex(x, y, uint8(v))
+ idx := uint8(v)
+ if int(idx) >= pLen {
+ return errInvalidColorIndex
+ }
+ img.SetColorIndex(x, y, idx)
}
d.flushBits()
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 140759020..5650e8ba8 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1069,7 +1069,7 @@ golang.org/x/exp/slices
golang.org/x/exp/slog
golang.org/x/exp/slog/internal
golang.org/x/exp/slog/internal/buffer
-# golang.org/x/image v0.17.0
+# golang.org/x/image v0.18.0
## explicit; go 1.18
golang.org/x/image/bmp
golang.org/x/image/ccitt