images). (cmb)
. Fixed bug #72913 (imagecopy() loses single-color transparency on palette
images). (cmb)
+ . Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb)
-- JSON:
- . Fixed bug #72787 (json_decode reads out of bounds). (Jakub Zelenka)
+- IMAP:
+ . Fixed bug #72852 (imap_mail null dereference). (Anatol)
+
+- Intl:
+ . Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF
+ sequence). (cmb)
-- MSSQL:
- . Fixed bug #72039 (Use of uninitialised value on mssql_guid_string). (Kalle)
+- OCI8
+ . Fixed invalid handle error with Implicit Result Sets. (Chris Jones)
+ . Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones)
- PDO:
+ . Fixed bug #72788 (Invalid memory access when using persistent PDO
+ connection). (Keyur)
+ . Fixed bug #72791 (Memory leak in PDO persistent connection handling). (Keyur)
. Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY
returns false). (cmb)
/* Open destination file */
dest = VCWD_FOPEN(fn_dest, "wb");
if (!dest) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' for writing", fn_dest);
+ php_error_docref(NULL, E_WARNING, "Unable to open '%s' for writing", fn_dest);
+ fclose(org);
RETURN_FALSE;
}
case PHP_GDIMG_TYPE_GIF:
im_org = gdImageCreateFromGif(org);
if (im_org == NULL) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' Not a valid GIF file", fn_dest);
+ php_error_docref(NULL, E_WARNING, "Unable to open '%s' Not a valid GIF file", fn_dest);
+ fclose(org);
+ fclose(dest);
RETURN_FALSE;
}
break;
ignore_warning = INI_INT("gd.jpeg_ignore_warning");
im_org = gdImageCreateFromJpegEx(org, ignore_warning);
if (im_org == NULL) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' Not a valid JPEG file", fn_dest);
+ php_error_docref(NULL, E_WARNING, "Unable to open '%s' Not a valid JPEG file", fn_dest);
+ fclose(org);
+ fclose(dest);
RETURN_FALSE;
}
break;
case PHP_GDIMG_TYPE_PNG:
im_org = gdImageCreateFromPng(org);
if (im_org == NULL) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' Not a valid PNG file", fn_dest);
+ php_error_docref(NULL, E_WARNING, "Unable to open '%s' Not a valid PNG file", fn_dest);
+ fclose(org);
+ fclose(dest);
RETURN_FALSE;
}
break;
#endif /* HAVE_GD_PNG */
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Format not supported");
+ php_error_docref(NULL, E_WARNING, "Format not supported");
+ fclose(org);
+ fclose(dest);
RETURN_FALSE;
break;
}
im_tmp = gdImageCreate (dest_width, dest_height);
if (im_tmp == NULL ) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to allocate temporary buffer");
+ php_error_docref(NULL, E_WARNING, "Unable to allocate temporary buffer");
+ fclose(dest);
+ gdImageDestroy(im_org);
RETURN_FALSE;
}
gdImageDestroy(im_org);
- fclose(org);
-
im_dest = gdImageCreate(dest_width, dest_height);
if (im_dest == NULL) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to allocate destination buffer");
+ php_error_docref(NULL, E_WARNING, "Unable to allocate destination buffer");
+ fclose(dest);
+ gdImageDestroy(im_tmp);
RETURN_FALSE;
}
white = gdImageColorAllocate(im_dest, 255, 255, 255);
if (white == -1) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to allocate the colors for the destination buffer");
+ php_error_docref(NULL, E_WARNING, "Unable to allocate the colors for the destination buffer");
+ fclose(dest);
+ gdImageDestroy(im_tmp);
+ gdImageDestroy(im_dest);
RETURN_FALSE;
}
black = gdImageColorAllocate(im_dest, 0, 0, 0);
if (black == -1) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to allocate the colors for the destination buffer");
+ php_error_docref(NULL, E_WARNING, "Unable to allocate the colors for the destination buffer");
+ fclose(dest);
+ gdImageDestroy(im_tmp);
+ gdImageDestroy(im_dest);
RETURN_FALSE;
}