. Fixed bug #72222 (ReflectionClass::export doesn't handle array constants).
(Nikita Nefedov)
-- Standard:
- . Fixed bug #72330 (CSV fields incorrectly split if escape char followed by
- UTF chars). (cmb)
+- SimpleXML:
+ . Fixed bug #72588 (Using global var doesn't work while accessing SimpleXML
+ element). (Laruence)
- SPL:
- . Fixed bug #72122 (IteratorIterator breaks '@' error suppression). (kinglozzer)
+ . Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU)
+ . Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape
+ character). (cmb)
-21 Jul 2016, PHP 5.6.24
+- SQLite3:
+ . Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash). (Laruence)
+
+- Standard:
+ . Fixed bug #72622 (array_walk + array_replace_recursive create references
+ from nothing). (Laruence)
+ . Fixed bug #72152 (base64_decode $strict fails to detect null byte).
+ (Lauri Kenttä)
+ . Fixed bug #72263 (base64_decode skips a character after padding in strict
+ mode). (Lauri Kenttä)
+ . Fixed bug #72264 (base64_decode $strict fails with whitespace between
+ padding). (Lauri Kenttä)
+ . Fixed bug #72330 (CSV fields incorrectly split if escape char followed by
+ UTF chars). (cmb)
+
+- Wddx:
+ . Fixed bug #72564 (boolean always deserialized as "true") (Remi)
+
+21 Jul 2016 PHP 7.0.9
- Core:
- . Fixed bug #71936 (Segmentation fault destroying HTTP_RAW_POST_DATA).
- (mike dot laspina at gmail dot com, Remi)
- . Fixed bug #72496 (Cannot declare public method with signature incompatible
- with parent private method). (Pedro Magalhães)
- . Fixed bug #72138 (Integer Overflow in Length of String-typed ZVAL). (Stas)
+ . Fixed bug #72508 (strange references after recursive function call and
+ "switch" statement). (Laruence)
. Fixed bug #72513 (Stack-based buffer overflow vulnerability in
- virtual_file_ex). (loianhtuan at gmail dot com)
- . Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session
- Deserialization). (taoguangchen at icloud dot com)
- . Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and
- applications). (CVE-2016-5385) (Stas)
+ virtual_file_ex). (Stas)
+ . Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries
+ and applications). (Stas)
- bz2:
- . Fixed bug #72447 (Type Confusion in php_bz2_filter_create()). (gogil at
- stealien dot com).
. Fixed bug #72613 (Inadequate error handling in bzread()). (Stas)
-- EXIF:
- . Fixed bug #50845 (exif_read_data() returns corrupted exif headers).
- (Bartosz Dziewoński)
-- EXIF:
+- CLI:
+ . Fixed bug #72484 (SCRIPT_FILENAME shows wrong path if the user specify
+ router.php). (Laruence)
+
+- COM:
+ . Fixed bug #72498 (variant_date_from_timestamp null dereference). (Anatol)
+
+- Curl:
+ . Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas)
+
+- Exif:
. Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).
(Stas)
. Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).
}
/* }}} */
-/* {{{ proto void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"' [, string escape = '\\']]])
+/* {{{ proto void SplFileObject::setCsvControl([string delimiter [, string enclosure [, string escape ]]])
- Set the delimiter and enclosure character used in fgetcsv */
+ Set the delimiter, enclosure and escape character used in fgetcsv */
SPL_METHOD(SplFileObject, setCsvControl)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
char delimiter = ',', enclosure = '"', escape='\\';
char *delim = NULL, *enclo = NULL, *esc = NULL;
- int d_len = 0, e_len = 0, esc_len = 0;
+ size_t d_len = 0, e_len = 0, esc_len = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sss", &delim, &d_len, &enclo, &e_len, &esc, &esc_len) == SUCCESS) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|sss", &delim, &d_len, &enclo, &e_len, &esc, &esc_len) == SUCCESS) {
switch(ZEND_NUM_ARGS())
{
case 3:
/* }}} */
/* {{{ proto array SplFileObject::getCsvControl()
- Get the delimiter and enclosure character used in fgetcsv */
+ Get the delimiter, enclosure and escape character used in fgetcsv */
SPL_METHOD(SplFileObject, getCsvControl)
{
- spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+ spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
- char delimiter[2], enclosure[2];
+ char delimiter[2], enclosure[2], escape[2];
array_init(return_value);
delimiter[1] = '\0';
enclosure[0] = intern->u.file.enclosure;
enclosure[1] = '\0';
+ escape[0] = intern->u.file.escape;
+ escape[1] = '\0';
- add_next_index_string(return_value, delimiter, 1);
- add_next_index_string(return_value, enclosure, 1);
- add_next_index_string(return_value, escape, 1);
+ add_next_index_string(return_value, delimiter);
+ add_next_index_string(return_value, enclosure);
++ add_next_index_string(return_value, escape);
}
/* }}} */