Return early if either width or height is zero

This commit is contained in:
Andrew Murray 2024-09-05 15:46:54 +10:00
parent eaeda4a6be
commit 1270043682
2 changed files with 8 additions and 0 deletions

View File

@ -71,6 +71,11 @@ def test_color_modes() -> None:
box_blur(sample.convert("YCbCr")) box_blur(sample.convert("YCbCr"))
@pytest.mark.parametrize("size", ((0, 1), (1, 0)))
def test_zero_dimension(size: tuple[int, int]) -> None:
assert box_blur(Image.new("L", size)).size == size
def test_radius_0() -> None: def test_radius_0() -> None:
assert_blur( assert_blur(
sample, sample,

View File

@ -238,6 +238,9 @@ ImagingBoxBlur(Imaging imOut, Imaging imIn, float xradius, float yradius, int n)
int i; int i;
Imaging imTransposed; Imaging imTransposed;
if (imOut->xsize == 0 || imOut->ysize == 0) {
return imOut;
}
if (n < 1) { if (n < 1) {
return ImagingError_ValueError("number of passes must be greater than zero"); return ImagingError_ValueError("number of passes must be greater than zero");
} }