Commit eddbbea4 authored by Mark A. Hershberger's avatar Mark A. Hershberger

Imported Upstream version 5.2.3

parent 2d4e5b09
......@@ -8,7 +8,7 @@ define ____executor_globals
end
document ____executor_globals
portable way of accessing executor_globals
portable way of accessing executor_globals, set $eg
ZTS detection is automatically based on ext/standard module struct
end
......@@ -39,14 +39,18 @@ define printzv
end
document printzv
prints content of zval
prints zval contents
end
define ____printzv_contents
set $zvalue = $arg0
set $type = $zvalue->type
printf "(refcount=%d) ", $zvalue->refcount
printf "(refcount=%d", $zvalue->refcount
if $zvalue->is_ref
printf ",is_ref"
end
printf ") "
if $type == 0
printf "NULL"
end
......@@ -69,7 +73,7 @@ define ____printzv_contents
if ! $arg1
printf "{\n"
set $ind = $ind + 1
____print_ht $zvalue->value.ht
____print_ht $zvalue->value.ht 1
set $ind = $ind - 1
set $i = $ind
while $i > 0
......@@ -103,7 +107,7 @@ define ____printzv_contents
printf "(%d): ", $ht->nNumOfElements
printf "{\n"
set $ind = $ind + 1
____print_ht $ht
____print_ht $ht 1
set $ind = $ind - 1
set $i = $ind
while $i > 0
......@@ -188,12 +192,10 @@ define print_const_table
end
define ____print_ht
set $ht = $arg0
set $ht = (HashTable*)$arg0
set $p = $ht->pListHead
while $p != 0
set $zval = *(zval **)$p->pData
set $i = $ind
while $i > 0
printf " "
......@@ -206,8 +208,18 @@ define ____print_ht
else
printf "%d => ", $p->h
end
if $arg1 == 0
printf "%p\n", (void*)$p->pData
end
if $arg1 == 1
set $zval = *(zval **)$p->pData
____printzv $zval 1
end
if $arg1 == 2
printf "%s\n", (char*)$p->pData
end
____printzv $zval 1
set $p = $p->pListNext
end
end
......@@ -215,7 +227,7 @@ end
define print_ht
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0
____print_ht $arg0 1
printf "}\n"
end
......@@ -223,6 +235,28 @@ document print_ht
dumps elements of HashTable made of zval
end
define print_htptr
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0 0
printf "}\n"
end
document print_htptr
dumps elements of HashTable made of pointers
end
define print_htstr
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0 2
printf "}\n"
end
document print_htstr
dumps elements of HashTable made of strings
end
define ____print_ft
set $ht = $arg0
set $p = $ht->pListHead
......
......@@ -3,21 +3,21 @@
# Zend
#
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.lo: $(srcdir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(srcdir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(srcdir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
@$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(srcdir)/zend_language_parser.h: $(srcdir)/zend_language_parser.c
$(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
@$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c
$(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
@$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
@$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(srcdir)/zend_language_parser.h
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31 May 2007, PHP 5.2.3
- Changed CGI install target to php-cgi and 'make install' to install CLI
when CGI is selected. (Jani)
- Changed JSON maximum nesting depth from 20 to 128. (Rasmus)
- Improved compilation of heredocs and interpolated strings. (Matt, Dmitry)
- Optimized out a couple of per-request syscalls. (Rasmus)
- Optimized digest generation in md5() and sha1() functions. (Ilia)
- Upgraded bundled SQLite 3 to version 3.3.17. (Ilia)
- Addded "max_input_nesting_level" php.ini option to limit nesting level of
input variables. Fix for MOPB-03-2007. (Stas)
- Added a 4th parameter flag to htmlspecialchars() and htmlentities() that
makes the function not encode existing html entities. (Ilia)
- Added PDO::FETCH_KEY_PAIR mode that will fetch a 2 column result set into
an associated array. (Ilia)
- Added CURLOPT_TIMEOUT_MS and CURLOPT_CONNECTTIMEOUT_MS cURL constants. (Sara)
- Added --ini switch to CLI that prints out configuration file names. (Marcus)
- Added mysql_set_charset() to allow runtime altering of connection encoding.
(Scott)
- Implemented FR #41416 (getColumnMeta() should also return table name). (Tony)
- Fixed an interger overflow inside chunk_split(), identified by Gerhard
Wagner (Ilia)
- Fixed SOAP extension's handler() to work even when
"always_populate_raw_post_data" is off. (Ilia)
- Fixed possible infinite loop in imagecreatefrompng. (libgd #86)
(by Xavier Roche, CVE-2007-2756). (Pierre)
- Fixed ext/filter Email Validation Vulnerability (MOPB-45 by Stefan Esser).
(Ilia)
- Fixed altering $this via argument named "this". (Dmitry)
- Fixed PHP CLI usage of php.ini from the binary location. (Hannes)
- Fixed segfault in strripos(). (Tony, Joxean Koret)
- Fixed bug #41525 (ReflectionParameter::getPosition() not available). (Marcus)
- Fixed bug #41511 (Compile failure under IRIX 6.5.30 building md5.c). (Jani)
- Fixed bug #41504 (json_decode() incorrectly decodes JSON arrays with empty
string keys). (Ilia)
- Fixed bug #41492 (open_basedir/safe_mode bypass inside realpath()). (Ilia)
- Fixed bug #41477 (no arginfo about SoapClient::__soapCall()). (Ilia)
- Fixed bug #41455 (ext/dba/config.m4 pollutes global $LIBS and $LDFLAGS).
(mmarek at suse dot cz, Tony)
- Fixed bug #41442 (imagegd2() under output control). (Tony)
- Fixed bug #41430 (Fatal error with negative values of maxlen parameter of
file_get_contents()). (Tony)
- Fixed bug #41423 (PHP assumes wrongly that certain ciphers are enabled in
OpenSSL). (Pierre)
- Fixed bug #41421 (Uncaught exception from a stream wrapper segfaults).
(Tony, Dmitry)
- Fixed bug #41403 (json_decode cannot decode floats if localeconv
decimal_point is not '.'). (Tony)
- Fixed bug #41401 (wrong unary operator precedence). (Stas)
- Fixed bug #41394 (dbase_create creates file with corrupted header). (Tony)
- Fixed bug #41390 (Clarify error message with invalid protocol scheme).
(Scott)
- Fixed bug #41378 (fastcgi protocol lacks support for Reason-Phrase in
"Status:" header). (anight at eyelinkmedia dot com, Dmitry)
- Fixed bug #41374 (whole text concats values of wrong nodes). (Rob)
- Fixed bug #41358 (configure cannot determine SSL lib with libcurl >= 7.16.2).
(Mike)
- Fixed bug #41353 (crash in openssl_pkcs12_read() on invalid input). (Ilia)
- Fixed bug #41351 (Invalid opcode with foreach ($a[] as $b)). (Dmitry, Tony)
- Fixed bug #41347 (checkdnsrr() segfaults on empty hostname). (Scott)
- Fixed bug #41337 (WSDL parsing doesn't ignore non soap bindings). (Dmitry)
- Fixed bug #41326 (Writing empty tags with Xmlwriter::WriteElement[ns])
(Pierre)
- Fixed bug #41321 (downgrade read errors in getimagesize() to E_NOTICE).
(Ilia)
- Fixed bug #41304 (compress.zlib temp files left). (Dmitry)
- Fixed bug #41293 (Fixed creation of HTTP_RAW_POST_DATA when there is no
default post handler). (Ilia)
- Fixed bug #41291 (FastCGI does not set SO_REUSEADDR).
(fmajid at kefta dot com, Dmitry)
- Fixed gd build when used with freetype 1.x (Pierre, Tony)
- Fixed bug #41287 (Namespace functions don't allow xmlns definition to be
optional). (Rob)
- Fixed bug #41285 (Improved fix for CVE-2007-1887 to work with non-bundled
sqlite2 lib). (Ilia)
- Fixed bug #41283 (Bug with deserializing array key that are doubles or
floats in wddx). (Ilia)
- Fixed bug #41257 (lookupNamespaceURI does not work as expected). (Rob)
- Fixed bug #41236 (Regression in timeout handling of non-blocking SSL
connections during reads and writes). (Ilia)
- Fixed bug #41134 (zend_ts_hash_clean not thread-safe).
(marco dot cova at gmail dot com, Tony)
- Fixed bug #41097 (ext/soap returning associative array as indexed without
using WSDL). (Dmitry)
- Fixed bug #41004 (minOccurs="0" and null class member variable). (Dmitry)
- Fixed bug #39542 (Behavior of require/include different to < 5.2.0).
(Dmitry)
03 May 2007, PHP 5.2.2
- Improved bundled GD
. Sync to 2.0.35
......@@ -211,8 +302,6 @@ PHP NEWS
(jdolecek at netbsd dot org, Nuno)
- Fixed PECL bug #10194 (crash in Oracle client when memory limit reached in
the callback). (Tony)
- Limit nesting level of input variables with max_input_nesting_level
as fix for MOPB-03-2007 (Stas)
- Fixed substr_compare and substr_count information leak (MOPB-14) (Stas, Ilia)
- Fixed crash on op-assign where argument is string offset (Brian, Stas)
- Fixed bug #38710 (data leakage because of nonexisting boundary checking in
......
......@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
/* $Id: tsrm_virtual_cwd.c,v 1.74.2.9.2.26 2007/04/12 15:28:58 dmitry Exp $ */
/* $Id: tsrm_virtual_cwd.c,v 1.74.2.9.2.29 2007/05/30 10:50:47 tony2001 Exp $ */
#include <sys/types.h>
#include <sys/stat.h>
......@@ -518,7 +518,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
}
if (use_cache) {
t = CWDG(realpath_cache_ttl)?time(NULL):0;
t = CWDG(realpath_cache_ttl)?time(0):0;
if ((bucket = realpath_cache_find(path, path_length, t TSRMLS_CC)) != NULL) {
int len = bucket->realpath_len;
......@@ -1009,7 +1009,7 @@ CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) {
if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND)) {
CWD_STATE_FREE(&new_state);
return -1;
}
......
--TEST--
adding numbers to strings
--INI--
precision=14
--FILE--
<?php
......
--TEST--
bug #22725 (A derived class can call a parent's protected method that calls a private method)
Bug #22725 (A derived class can call a parent's protected method that calls a private method)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
......
--TEST--
Bug #27304
Bug #27304 (Static functions don't function properly)
--FILE--
<?php
......
--TEST--
Bug #29104 Function declaration in method doesn't work
Bug #29104 (Function declaration in method doesn't work)
--FILE--
<?php
class A
......
--TEST--
Bug #29210 Function: is_callable - no support for private and protected classes
Bug #29210 (Function is_callable does not support private and protected methods)
--FILE--
<?php
class test_class {
......
--TEST--
Bug #30519 Interface not existing says Class not found
Bug #30519 (Interface not existing says Class not found)
--FILE--
<?php
class test implements a {
......
--TEST--
Bug #30702 cannot initialize class variable from class constant
Bug #30702 (cannot initialize class variable from class constant)
--FILE--
<?php
class foo {
......
--TEST--
Bug #30791 magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded
Bug #30791 (magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded)
--FILE--
<?php
......
--TEST--
Bug #30889 Conflict between __get/__set and ++ operator
Bug #30889 (Conflict between __get/__set and ++ operator)
--FILE--
<?php
class overloaded
......
--TEST--
Bug #32296 get_class_methods output has changed between 5.0.2 and 5.0.3
Bug #32296 (get_class_methods output has changed between 5.0.2 and 5.0.3)
--FILE--
<?php
abstract class space{
......
--TEST--
Bug #32427 Interfaces are not allowed 'static' access modifier
Bug #32427 (Interfaces are not allowed 'static' access modifier)
--FILE--
<?php
......
--TEST--
Bug #32660 Assignment by reference causes crash when field access is overloaded (__get)
Bug #32660 (Assignment by reference causes crash when field access is overloaded (__get))
--FILE--
<?php
class A
......
--TEST--
Bug #32674 exception in iterator causes crash
Bug #32674 (exception in iterator causes crash)
--FILE--
<?php
class collection implements Iterator {
......
--TEST--
Bug #32833 Invalid opcode
Bug #32833 (Invalid opcode with $a[] .= '')
--FILE--
<?php
$test = array();
......
--TEST--
Bug #33257 array_splice() inconsistent when passed function instead of variable
Bug #33257 (array_splice() inconsistent when passed function instead of variable)
--INI--
error_reporting=4095
--FILE--
......
--TEST--
Bug #34712 zend.ze1_compatibility_mode = on segfault
Bug #34712 (zend.ze1_compatibility_mode = on segfault)
--INI--
zend.ze1_compatibility_mode=1
error_reporting=4095
......
--TEST--
Bug #35437 Segfault or Invalid Opcode 137/1/4
Bug #35437 (Segfault or Invalid Opcode 137/1/4)
--FILE--
<?php
function err2exception($errno, $errstr)
......
--TEST--
Bug #37811 define not using toString on objects
Bug #37811 (define not using toString on objects)
--FILE--
<?php
......
--TEST--
Bug #38220 Crash on some object operations
Bug #38220 (Crash on some object operations)
--FILE--
<?php
class drv {
......
--TEST--
Bug #39542 (Behaviour of require_once/include_once different to < 5.2.0)
--FILE--
<?php
$oldcwd = getcwd();
chdir(dirname(__FILE__));
if (substr(PHP_OS, 0, 3) == 'WIN') {
set_include_path(dirname(__FILE__).'/bug39542;.');
} else {
set_include_path(dirname(__FILE__).'/bug39542:.');
}
function __autoload($class) {
if (!require_once($class.'.php')) {
error_log('Error: Autoload class: '.$class.' not found!');
}
}
new bug39542();
chdir($oldcwd);
?>
--EXPECT--
ok
<?php
class bug39542 {
function bug39542() {
echo "ok\n";
}
}
?>
--TEST--
Bug #40236 (php -a function allocation eats memory)
--SKIPIF--
<?php
if (php_sapi_name() != "cli") die("skip CLI only");
if (extension_loaded("readline")) die("skip Test doesn't support readline");
?>
--FILE--
<?php
$php = getenv('TEST_PHP_EXECUTABLE');
......