- Added missing open_basedir checks to CGI. (anight at eyelinkmedia dot com,
Tony)
- Added missing format validator to unpack() function. (Ilia)
+- Added missing error check inside bcpowmod(). (Ilia)
- Fixed several integer overflows in ImageCreate(), ImageCreateTrueColor(),
ImageCopyResampled() and ImageFilledPolygon() reported by Mattias Bengtsson.
(Tony)
scale_int = (int) ((int)scale < 0) ? 0 : scale;
- bc_raisemod(first, second, mod, &result, scale_int TSRMLS_CC);
- if (result->n_scale > scale) {
- result->n_scale = scale;
+ if (bc_raisemod(first, second, mod, &result, scale_int TSRMLS_CC) != -1) {
+ if (result->n_scale > scale) {
+ result->n_scale = scale;
+ }
+ Z_STRVAL_P(return_value) = bc_num2str(result);
+ Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
+ Z_TYPE_P(return_value) = IS_STRING;
+ } else {
+ RETVAL_FALSE;
}
- Z_STRVAL_P(return_value) = bc_num2str(result);
- Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
- Z_TYPE_P(return_value) = IS_STRING;
+
bc_free_num(&first);
bc_free_num(&second);
bc_free_num(&mod);