Skip to content

Commit

Permalink
Merge pull request #6874 from hugovk/invalid-box-blur-filter
Browse files Browse the repository at this point in the history
Raise ValueError for BoxBlur filter with negative radius
  • Loading branch information
radarhere committed Jan 11, 2023
2 parents c683f04 + d504d2a commit eb89e3a
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Tests/test_image_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
ImageFilter.ModeFilter,
ImageFilter.GaussianBlur,
ImageFilter.GaussianBlur(5),
ImageFilter.BoxBlur(0),
ImageFilter.BoxBlur(5),
ImageFilter.UnsharpMask,
ImageFilter.UnsharpMask(10),
Expand Down Expand Up @@ -173,3 +174,14 @@ def test_consistency_5x5(mode):
Image.merge(mode, source[: len(mode)]).filter(kernel),
Image.merge(mode, reference[: len(mode)]),
)


def test_invalid_box_blur_filter():
with pytest.raises(ValueError):
ImageFilter.BoxBlur(-2)

im = hopper()
box_blur_filter = ImageFilter.BoxBlur(2)
box_blur_filter.radius = -2
with pytest.raises(ValueError):
im.filter(box_blur_filter)
3 changes: 3 additions & 0 deletions src/PIL/ImageFilter.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,9 @@ class BoxBlur(MultibandFilter):
name = "BoxBlur"

def __init__(self, radius):
if radius < 0:
msg = "radius must be >= 0"
raise ValueError(msg)
self.radius = radius

def filter(self, image):
Expand Down
3 changes: 3 additions & 0 deletions src/libImaging/BoxBlur.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,9 @@ ImagingBoxBlur(Imaging imOut, Imaging imIn, float radius, int n) {
if (n < 1) {
return ImagingError_ValueError("number of passes must be greater than zero");
}
if (radius < 0) {
return ImagingError_ValueError("radius must be >= 0");
}

if (strcmp(imIn->mode, imOut->mode) || imIn->type != imOut->type ||
imIn->bands != imOut->bands || imIn->xsize != imOut->xsize ||
Expand Down

0 comments on commit eb89e3a

Please sign in to comment.