Skip to content

Commit dff01a0

Browse files
committed
Validate margin in ImagingExpand
1 parent a94def3 commit dff01a0

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

‎Tests/test_image_filter.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ def test_rankfilter_properties() -> None:
152152

153153
with pytest.raises(ValueError, match="filter size too large"):
154154
ImageFilter.RankFilter(23171, 1)
155+
im = Image.new("1", (1, 1))
156+
with pytest.raises(ValueError, match="filter size too large"):
157+
im.im.expand(23171)
155158

156159
with pytest.raises(ValueError, match="bad rank value"):
157160
ImageFilter.RankFilter(1, 1)

‎src/libImaging/Filter.c‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ ImagingExpand(Imaging imIn, int margin) {
5959
if (margin < 0) {
6060
return (Imaging)ImagingError_ValueError("bad kernel size");
6161
}
62+
if (margin > INT_MAX / (margin * (int)sizeof(FLOAT32))) {
63+
return (Imaging)ImagingError_ValueError("filter size too large");
64+
}
6265

6366
imOut =
6467
ImagingNewDirty(imIn->mode, imIn->xsize + 2 * margin, imIn->ysize + 2 * margin);

0 commit comments

Comments
 (0)