diff --git a/pngtrans.c b/pngtrans.c index a6cab0cdf0..d8ab362d66 100644 --- a/pngtrans.c +++ b/pngtrans.c @@ -848,6 +848,16 @@ png_set_user_transform_info(png_struct *png_ptr, void *user_transform_ptr, } #endif + if (user_transform_depth != 0 && + user_transform_depth != 1 && user_transform_depth != 2 && + user_transform_depth != 4 && user_transform_depth != 8 && + user_transform_depth != 16) + { + png_app_error(png_ptr, + "png_set_user_transform_info: invalid user_transform_depth"); + return; + } + png_ptr->user_transform_ptr = user_transform_ptr; png_ptr->user_transform_depth = (png_byte)user_transform_depth; png_ptr->user_transform_channels = (png_byte)user_transform_channels;