Skip to content

Panic in the Rotate90 function. #159

Open
@hsnks100

Description

@hsnks100

The following code

package main

import (
	"image"

	"github.com/disintegration/imaging"
)

func Test() {
	yStride := 288
	cStride := 144
	width := 288
	height := 147

	im := &image.YCbCr{
		Y:              make([]uint8, yStride*height),
		Cb:             make([]uint8, (cStride*height)/2),
		Cr:             make([]uint8, (cStride*height)/2),
		YStride:        yStride,
		CStride:        yStride / 2,
		SubsampleRatio: image.YCbCrSubsampleRatio420,
		Rect: image.Rectangle{
			Min: image.Point{
				X: 0,
				Y: 0,
			},
			Max: image.Point{
				X: width,
				Y: height,
			},
		},
	}
	imaging.Rotate90(im)
}
func main() {
	Test()
}

result

go build && ./ip
panic: runtime error: index out of range [10654] with length 10584

goroutine 21 [running]:
github.com/disintegration/imaging.(*scanner).scan(0xc000116040, 0x11d, 0x0, 0x11e, 0x93, {0xc000180498, 0x0?, 0x290e8})
        /Users/diallo/go/pkg/mod/github.com/disintegration/[email protected]/scanner.go:202 +0x8f0
github.com/disintegration/imaging.Rotate90.func1(0x0?)
        /Users/diallo/go/pkg/mod/github.com/disintegration/[email protected]/transform.go:90 +0x6c
github.com/disintegration/imaging.parallel.func1()
        /Users/diallo/go/pkg/mod/github.com/disintegration/[email protected]/utils.go:33 +0x63
created by github.com/disintegration/imaging.parallel
        /Users/diallo/go/pkg/mod/github.com/disintegration/[email protected]/utils.go:31 +0xd6

There seems to be a problem when height is an odd number.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions