Skip to content

Commit 3302325

Browse files
committed
Make sure image nullness checks raise ValueErrors, not ModeErrors
1 parent 112a09f commit 3302325

14 files changed

Lines changed: 47 additions & 22 deletions

File tree

src/libImaging/Bands.c

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ ImagingGetBand(Imaging imIn, int band) {
2323
int x, y;
2424

2525
/* Check arguments */
26-
if (!imIn || imIn->type != IMAGING_TYPE_UINT8) {
27-
return (Imaging)ImagingError_NotSupportedError(NULL);
26+
if (!imIn) {
27+
return (Imaging)ImagingError_ValueError(NULL);
28+
}
29+
30+
if (imIn->type != IMAGING_TYPE_UINT8) {
31+
return (Imaging)ImagingError_NotSupportedError("only 8-bit images supported");
2832
}
2933

3034
if (band < 0 || band >= imIn->bands) {
@@ -73,8 +77,13 @@ ImagingSplit(Imaging imIn, Imaging bands[4]) {
7377
int i, j, x, y;
7478

7579
/* Check arguments */
76-
if (!imIn || imIn->type != IMAGING_TYPE_UINT8) {
77-
(void)ImagingError_NotSupportedError(NULL);
80+
if (!imIn) {
81+
(void)ImagingError_ValueError(NULL);
82+
return 0;
83+
}
84+
85+
if (imIn->type != IMAGING_TYPE_UINT8) {
86+
(void)ImagingError_NotSupportedError("only 8-bit images supported");
7887
return 0;
7988
}
8089

@@ -179,7 +188,7 @@ ImagingPutBand(Imaging imOut, Imaging imIn, int band) {
179188

180189
/* Check arguments */
181190
if (!imIn || !imOut) {
182-
return (Imaging)ImagingError_ModeError(NULL);
191+
return (Imaging)ImagingError_ValueError(NULL);
183192
}
184193
if (imIn->bands != 1) {
185194
return (Imaging)ImagingError_ModeError("source image must have exactly 1 band");
@@ -231,6 +240,10 @@ ImagingFillBand(Imaging imOut, int band, int color) {
231240
return (Imaging)ImagingError_ValueError(NULL);
232241
}
233242

243+
if (!imOut) {
244+
return (Imaging)ImagingError_ValueError("only 8-bit images supported");
245+
}
246+
234247
if (imOut->type != IMAGING_TYPE_UINT8) {
235248
return (Imaging)ImagingError_NotSupportedError("only 8-bit images supported");
236249
}

src/libImaging/Blend.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ ImagingBlend(Imaging imIn1, Imaging imIn2, float alpha) {
2323
int x, y;
2424

2525
/* Check arguments */
26-
if (!imIn1 || !imIn2 || imIn1->type != IMAGING_TYPE_UINT8 || imIn1->palette ||
26+
if (!imIn1 || !imIn2) {
27+
return (Imaging)ImagingError_ValueError(NULL);
28+
}
29+
if (imIn1->type != IMAGING_TYPE_UINT8 || imIn1->palette ||
2730
imIn1->mode == IMAGING_MODE_1 || imIn2->palette ||
2831
imIn2->mode == IMAGING_MODE_1) {
2932
return ImagingError_ModeError(NULL);

src/libImaging/Chops.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,11 @@
6868
static Imaging
6969
create(Imaging im1, Imaging im2, const ModeID mode) {
7070
int xsize, ysize;
71+
if (!im1 || !im2) {
72+
return (Imaging)ImagingError_ValueError(NULL);
73+
}
7174

72-
if (!im1 || !im2 || im1->type != IMAGING_TYPE_UINT8 ||
75+
if (im1->type != IMAGING_TYPE_UINT8 ||
7376
(mode != IMAGING_MODE_UNKNOWN &&
7477
(im1->mode != IMAGING_MODE_1 || im2->mode != IMAGING_MODE_1))) {
7578
return (Imaging)ImagingError_ModeError(NULL);

src/libImaging/Convert.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,7 +1581,7 @@ convert(Imaging imOut, Imaging imIn, ModeID mode, ImagingPalette palette, int di
15811581
ImagingShuffler convert;
15821582

15831583
if (!imIn) {
1584-
return (Imaging)ImagingError_ModeError(NULL);
1584+
return (Imaging)ImagingError_ValueError(NULL);
15851585
}
15861586

15871587
if (mode == IMAGING_MODE_UNKNOWN) {
@@ -1673,7 +1673,7 @@ ImagingConvertTransparent(Imaging imIn, const ModeID mode, int r, int g, int b)
16731673
int y;
16741674

16751675
if (!imIn) {
1676-
return (Imaging)ImagingError_ModeError(NULL);
1676+
return (Imaging)ImagingError_ValueError(NULL);
16771677
}
16781678

16791679
if (imIn->mode == IMAGING_MODE_RGB &&

src/libImaging/Crop.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ImagingCrop(Imaging imIn, int sx0, int sy0, int sx1, int sy1) {
2525
INT32 zero = 0;
2626

2727
if (!imIn) {
28-
return (Imaging)ImagingError_ModeError(NULL);
28+
return (Imaging)ImagingError_ValueError(NULL);
2929
}
3030

3131
xsize = sx1 - sx0;

src/libImaging/Histo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ImagingGetHistogram(Imaging im, Imaging imMask, void *minmax) {
6565
FLOAT32 fmin, fmax, scale;
6666

6767
if (!im) {
68-
return ImagingError_ModeError(NULL);
68+
return ImagingError_ValueError(NULL);
6969
}
7070

7171
if (imMask) {

src/libImaging/Matrix.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ImagingConvertMatrix(Imaging im, const ModeID mode, const float m[12]) {
2424

2525
/* Assume there's enough data in the buffer */
2626
if (!im) {
27-
return (Imaging)ImagingError_ModeError(NULL);
27+
return (Imaging)ImagingError_ValueError(NULL);
2828
}
2929
if (im->bands != 3) {
3030
return (Imaging)ImagingError_ModeError("image must have exactly 3 bands");

src/libImaging/ModeFilter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ImagingModeFilter(Imaging im, int size) {
2525
int histogram[256];
2626

2727
if (!im) {
28-
return (Imaging)ImagingError_ModeError(NULL);
28+
return (Imaging)ImagingError_ValueError(NULL);
2929
}
3030
if (im->bands != 1 || im->type != IMAGING_TYPE_UINT8) {
3131
return (Imaging)ImagingError_ModeError("image must have 8-bit data in 1 band");

src/libImaging/Negative.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ImagingNegative(Imaging im) {
2424
int x, y;
2525

2626
if (!im) {
27-
return (Imaging)ImagingError_ModeError(NULL);
27+
return (Imaging)ImagingError_ValueError(NULL);
2828
}
2929

3030
imOut = ImagingNewDirty(im->mode, im->xsize, im->ysize);

src/libImaging/Offset.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ImagingOffset(Imaging im, int xoffset, int yoffset) {
2222
Imaging imOut;
2323

2424
if (!im) {
25-
return (Imaging)ImagingError_ModeError(NULL);
25+
return (Imaging)ImagingError_ValueError(NULL);
2626
}
2727

2828
imOut = ImagingNewDirty(im->mode, im->xsize, im->ysize);

0 commit comments

Comments
 (0)