Hello community,
here is the log from the commit of package php5
checked in at Tue Aug 1 17:32:25 CEST 2006.
--------
--- php5/php5.changes 2006-06-09 12:55:15.000000000 +0200
+++ php5/php5.changes 2006-07-26 23:51:56.000000000 +0200
@@ -1,0 +2,36 @@
+Wed Jul 26 16:36:05 CEST 2006 - postadal@suse.cz
+
+- updated to version 5.1.4
+ * FastCGI interface was completely reimplemented
+ * multitude of improvements to the SPL, SimpleXML, GD, CURL and
+ Reflection extensions
+ * support for many additional date formats added to the strtotime()
+ * a performance improvements added to the engine and core extensions
+ * added imap_savebody() that allows message body to be written to a file
+ * added lchown() and lchgrp() to change user/group ownership of symlinks
+ * upgraded bundled PCRE library to version 6.6
+
+- merged changes from openSUSE build service
+ * removed unneeded sablot-devel,sqlite-devel,pcre-devel,fam-devel
+ and libmcal from BuildRequires
+ * added php-ctype,php-dom,php-iconv,php-pdo,php-pdo_sqlite,php-sqlite,
+ php-tokenizer,php-xmlreader,php-xmlwriter to Recommends
+ * added php-mbstring php-gd php-pear php-gettext php-mysqli to Suggests
+ * added support for optional readline(libedit) for CLI
+ (disabled by default)
+ * patches for zendengine (ze2_bugs.patch), xsl (xsl_bugs.patch),
+ curl (curl.patch) and mbstring bugs (mbstring_bugs.patch),
+ big soap patch (soap.patch)
+ * removed obsoleted patches
+ * fixed Safe Mode Bypass [#188243] (standard.patch)
+ * upstream patches
+ [php#37306, php#37416, php#37587, php#37720]
+ [php#37576, php#37496, php#37341, php#37313, php#37256] (cgi_bugs.patch)
+ [php#37346, php#37360] (gd-fixes.patch)
+ * fixed build inconsistences, added php-hash module [#173023]
+ * added pdo_odbc.so to php-odbc module [#190614]
+ * build without explicit safe_mode and magic_quotes (unneeded)
+ * removed useless GD --with-ttf configure option, only suitable
+ for freetype 1
+
+-------------------------------------------------------------------
Old:
----
php-5.1.2-CVE-2006-0996.patch
php-5.1.2-CVE-2006-1017.patch
php-5.1.2-CVE-2006-1490.patch
php-5.1.2-CVE-2006-1494-1608.patch
php-5.1.2-arm_fp_endianness.patch
php-5.1.2-emalloc.patch
php-5.1.2-ftp_fopen_wrapper.patch
php-5.1.2-gd.patch
php-5.1.2-math.patch
php-5.1.2-mbstring-null_injection.patch
php-5.1.2-mbstring-secfix.patch
php-5.1.2-mbstring.patch
php-5.1.2-mysqli-64bit.patch
php-5.1.2-parse_date.patch.bz2
php-5.1.2-pdo.patch
php-5.1.2-phpbug-16144.patch
php-5.1.2-phpbug-36006.patch
php-5.1.2-phpbug-36007.patch
php-5.1.2-phpbug-36011.patch
php-5.1.2-phpbug-36016.patch
php-5.1.2-phpbug-36037.patch
php-5.1.2-phpbug-36046.patch
php-5.1.2-phpbug-36071.patch
php-5.1.2-phpbug-36148.patch
php-5.1.2-phpbug-36158.patch
php-5.1.2-phpbug-36176.patch
php-5.1.2-phpbug-36185.patch
php-5.1.2-phpbug-36208.patch
php-5.1.2-phpbug-36268.patch
php-5.1.2-phpbug-36306.patch
php-5.1.2-phpbug-36351.patch
php-5.1.2-phpbug-36420.patch
php-5.1.2-phpbug-36459.patch
php-5.1.2-phpbug-36656.patch
php-5.1.2-phpbug-37257.patch
php-5.1.2-phpbug-37276.patch
php-5.1.2-phpbug-37346.patch
php-5.1.2-phpbug-37394.patch
php-5.1.2-recode-fix.patch
php-5.1.2-session.patch
php-5.1.2-session2.patch
php-5.1.2-simplexml.patch
php-5.1.2-soap.patch
php-5.1.2-spl_directory.patch
php-5.1.2-string.patch
php-5.1.2-xmlreader.patch
php-5.1.2-xp_socket.patch
php-5.1.2-zend-fix.patch
php-5.1.2-zend_hash_del.patch
php-5.1.2-zend_operators.patch
php-5.1.2.tar.bz2
New:
----
cgi_bugs.patch
curl.patch
main_bugs.patch
mbstring_bugs.patch
php-5.1.4.tar.bz2
php-bug-37306.patch
php-bug-37416.patch
php-bug-37587.patch
php-bug-37720.patch
php5-gd-fixes.patch
soap.patch
standard.patch
xsl_bugs.patch
ze2_bugs.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php5.spec ++++++
--- /var/tmp/diff_new_pack.Gjyixf/_old 2006-08-01 17:31:42.000000000 +0200
+++ /var/tmp/diff_new_pack.Gjyixf/_new 2006-08-01 17:31:42.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package php5 (Version 5.1.2)
+# spec file for package php5 (Version 5.1.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,21 +11,40 @@
# norootforbuild
Name: php5
-BuildRequires: apache2-devel aspell-devel curl-devel db-devel fam-devel gmp-devel gtk-devel imap imap-devel krb5-devel libmcal libmcrypt-devel libtidy-devel libtiff-devel libxslt-devel mhash-devel mm-devel mysql-devel net-snmp-devel openldap2 openldap2-devel orbit-devel pam-devel pcre-devel pkgconfig postfix postgresql-devel qt3-devel readline-devel sablot-devel sqlite-devel t1lib-devel tcpd-devel unixODBC-devel update-desktop-files zip
-%if %{?suse_version:%suse_version}%{?!suse_version:0} >= 1010
+%define pkg_name php5
+%define with_libedit 0
+%define with_spell 1
+%if 0%{?suse_version} < 930
+%define with_spell 0
+BuildRequires: heimdal-devel
+%else
+BuildRequires: krb5-devel
+%endif
+BuildRequires: apache2-devel curl-devel db-devel gmp-devel gtk-devel imap imap-devel libmcrypt-devel libtidy-devel libtiff-devel libxslt-devel mhash-devel mm-devel mysql-devel net-snmp-devel openldap2 openldap2-devel orbit-devel pam-devel pkgconfig postfix postgresql-devel qt3-devel readline-devel t1lib-devel tcpd-devel unixODBC-devel update-desktop-files zip
+%if %{with_spell}
+BuildRequires: aspell-devel
+%endif
+%if 0%{?suse_version} > 1000
#!BuildIgnore: flex
BuildRequires: flex-old
+# I would like this to become a hard dependency, as PHP is
+# documented to have this modules by default (no addtional libs are needed)
+Recommends: php-ctype php-dom php-iconv php-pdo php-pdo_sqlite php-sqlite
+Recommends: php-tokenizer php-xmlreader php-xmlwriter
+# other highly reccommended extensions
+Suggests: php-mbstring php-gd php-pear php-gettext php-mysqli
%else
BuildRequires: flex libgcrypt-devel rpm-devel
-%endif
-%if %{?suse_version:%suse_version}%{?!suse_version:0} < 1000
BuildRequires: libjpeg libjpeg-devel
%endif
-%define extension_dir %{_libdir}/%{name}/extensions
-%define peardir %{_datadir}/%{name}/PEAR
+%if %{with_libedit}
+BuildRequires: libedit-devel
+%endif
+%define extension_dir %{_libdir}/%{pkg_name}/extensions
+%define peardir %{_datadir}/%{pkg_name}/PEAR
%define cgi_dir /srv/www/cgi-bin
-%define php_sysconf %{_sysconfdir}/%{name}
-%define safemode_dir %{_libdir}/%{name}/bin
+%define php_sysconf %{_sysconfdir}/%{pkg_name}
+%define safemode_dir %{_libdir}/%{pkg_name}/bin
########################################
# apache macros
########################################
@@ -37,69 +56,41 @@
%define apache2_serverroot %(%{apxs2} -q PREFIX)
###
###
-Version: 5.1.2
-Release: 30
+Version: 5.1.4
+Release: 1
License: Other uncritical OpenSource License, Other License(s), see package
Group: Productivity/Networking/Web/Servers
-Provides: php zend php-xml php-spl php-simplexml php-session php-pcre
+Provides: php zend php-xml php-spl php-simplexml php-session php-pcre php-date php-reflection
Autoreqprov: on
Source0: php-%{version}.tar.bz2
Source1: php-suse-addons.tar.bz2
+#SUSE specific stuff
Patch1: php5-config.patch
Patch2: php5-phpize.patch
Patch3: php5-apache_sapi_install.patch
Patch4: php5-php-config.patch
-Patch5: php-%{version}-include_path.patch
-Patch6: php-%{version}-recode-fix.patch
-Patch7: php-%{version}-arm_fp_endianness.patch
-Patch8: php-%{version}-phpbug-36016.patch
-Patch9: php-%{version}-phpbug-36011.patch
-Patch10: php-%{version}-phpbug-36071.patch
-Patch11: php-%{version}-zend-fix.patch
-Patch12: php-%{version}-phpbug-36046.patch
-Patch13: php-%{version}-phpbug-36037.patch
-Patch14: php-%{version}-phpbug-36006.patch
-Patch15: php-%{version}-gd.patch
-Patch16: php-%{version}-phpbug-36007.patch
-Patch17: php-%{version}-session.patch
-Patch18: php-%{version}-xmlreader.patch
-Patch19: php-%{version}-phpbug-36176.patch
-Patch20: php-%{version}-pdo.patch
-Patch21: php-%{version}-phpbug-36268.patch
-Patch22: php-%{version}-phpbug-36148.patch
-Patch23: php-%{version}-phpbug-36185.patch
-Patch24: php-%{version}-phpbug-36208.patch
-Patch25: php-%{version}-phpbug-36158.patch
-Patch26: php-%{version}-phpbug-36306.patch
-Patch27: php-%{version}-phpbug-36351.patch
-Patch28: php-%{version}-spl_directory.patch
-Patch29: php-%{version}-session2.patch
-Patch30: php-%{version}-soap.patch
-Patch31: php-%{version}-math.patch
-Patch32: php-%{version}-simplexml.patch
-Patch33: php-%{version}-mbstring.patch
-Patch34: php-%{version}-zend_operators.patch
-Patch35: php-%{version}-xp_socket.patch
-Patch36: php-%{version}-mbstring-secfix.patch
-Patch37: php-%{version}-mbstring-null_injection.patch
-Patch38: php-%{version}-phpbug-16144.patch
-Patch39: php-%{version}-phpbug-36656.patch
-Patch40: php-%{version}-parse_date.patch.bz2
-Patch41: php-%{version}-string.patch
-Patch42: php-%{version}-phpbug-36459.patch
-Patch43: php-%{version}-phpbug-36420.patch
-Patch44: php-%{version}-mysqli-64bit.patch
-Patch45: php-%{version}-ftp_fopen_wrapper.patch
-Patch46: php-%{version}-CVE-2006-1494-1608.patch
-Patch47: php-%{version}-CVE-2006-0996.patch
-Patch48: php-%{version}-CVE-2006-1490.patch
-Patch49: php-%{version}-CVE-2006-1017.patch
-Patch50: php-%{version}-phpbug-37257.patch
-Patch51: php-%{version}-phpbug-37276.patch
-Patch52: php-%{version}-phpbug-37346.patch
-Patch53: php-%{version}-zend_hash_del.patch
-Patch54: php-%{version}-phpbug-37394.patch
-Patch55: php-%{version}-emalloc.patch
+Patch5: php-5.1.2-include_path.patch
+#bugs here
+Patch7: php-bug-37720.patch
+Patch8: php-bug-37306.patch
+# fixes PHP bugs 37576,37496,37341,37313,37256
+Patch9: cgi_bugs.patch
+Patch10: php-bug-37587.patch
+# php bugs 37346,37360
+Patch11: php5-gd-fixes.patch
+Patch12: php-bug-37416.patch
+# 37306,tempnam() bugs
+Patch13: main_bugs.patch
+# big soap patch
+Patch14: soap.patch
+# basic function problems
+Patch15: standard.patch
+#mbstring bugs
+Patch16: mbstring_bugs.patch
+# ZendEngine issues
+Patch17: ze2_bugs.patch
+Patch18: xsl_bugs.patch
+Patch19: curl.patch
URL: http://www.php.net
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Icon: php5.xpm
@@ -187,7 +178,7 @@
Requires: apache2-prefork %{apache2_mmn} %{name} = %{version}
PreReq: apache2
Conflicts: apache2-mod_php4
-Provides: mod_php_any php-xml php-spl php-simplexml php-session php-pcre
+Provides: mod_php_any php-xml php-spl php-simplexml php-session php-pcre php-date php-reflection
%description -n apache2-mod_php5
PHP is a server-side, cross-platform HTML embedded scripting language.
@@ -580,6 +571,30 @@
Thies C. Arntzen
Uwe Steinmann
+%package hash
+Provides: php-hash
+Summary: PHP5 Extension Module
+Group: Productivity/Networking/Web/Servers
+Requires: %{name} = %{version}
+
+%description hash
+Message Digest (hash) engine. Allows direct or incremental processing
+of arbitrary length messages using a variety of hashing algorithms.
+
+
+
+Authors:
+--------
+ Andrei Zmievski
+ Danny Heijl
+ Frank M. Kromann
+ Rasmus Lerdorf
+ Sam Ruby
+ Sascha Schumann
+ Stefan Roehrich
+ Thies C. Arntzen
+ Uwe Steinmann
+
%package iconv
Provides: php-iconv
Summary: PHP5 Extension Module
@@ -794,10 +809,10 @@
Uwe Steinmann
%package odbc
-Provides: php-odbc
+Provides: php-odbc php-pdo_odbc
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version}
+Requires: %{name} = %{version} %{name}-pdo = %{version}
%description odbc
This module adds ODBC support.
@@ -901,7 +916,7 @@
Provides: php-pdo_mysql
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-pdo = %{version}
+Requires: %{name} = %{version} %{name}-pdo = %{version}
%description pdo_mysql
mySQL driver for PDO
@@ -924,7 +939,7 @@
Provides: php-pdo_pgsql
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-pdo = %{version}
+Requires: %{name} = %{version} %{name}-pdo = %{version}
%description pdo_pgsql
PostgreSQL driver for PDO
@@ -947,7 +962,7 @@
Provides: php-pdo_sqlite
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-pdo = %{version} %{name}-sqlite = %{version}
+Requires: %{name} = %{version} %{name}-pdo = %{version} %{name}-sqlite = %{version}
%description pdo_sqlite
SQLite 3.x driver for PDO
@@ -1012,6 +1027,7 @@
Thies C. Arntzen
Uwe Steinmann
+%if %{with_spell}
%package pspell
Provides: php-pspell
Summary: PHP5 pspell extension
@@ -1036,6 +1052,7 @@
Thies C. Arntzen
Uwe Steinmann
+%endif
%package shmop
Provides: php-shmop
Summary: PHP5 Extension Module
@@ -1138,7 +1155,7 @@
Provides: php-sqlite
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-pdo = %{version}
+Requires: %{name} = %{version} %{name}-pdo = %{version}
%description sqlite
This is an extension for the SQLite Embeddable SQL Database Engine.
@@ -1337,7 +1354,7 @@
Provides: php-xsl
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-dom = %{version}
+Requires: %{name} = %{version} %{name}-dom = %{version}
%description xsl
This module adds new XSL support to PHP.
@@ -1360,7 +1377,7 @@
Provides: php-xmlreader
Summary: PHP5 Extension Module
Group: Productivity/Networking/Web/Servers
-Requires: %{name} = %{version} php5-dom = %{version}
+Requires: %{name} = %{version} %{name}-dom = %{version}
%description xmlreader
XMLReader represents a reader that provides non-cached, forward-only
@@ -1435,7 +1452,6 @@
%patch3 -p1
%patch4
%patch5
-%patch6
%patch7
%patch8
%patch9
@@ -1449,42 +1465,6 @@
%patch17
%patch18
%patch19
-%patch20
-%patch21
-%patch22
-%patch23
-%patch24
-%patch25
-%patch26
-%patch27
-%patch28
-%patch29
-%patch30
-%patch31
-%patch32
-%patch33
-%patch34
-%patch35
-%patch36
-%patch37
-%patch38
-%patch39
-%patch40
-%patch41
-%patch42
-%patch43
-%patch44
-%patch45
-%patch46
-%patch47
-%patch48
-%patch49
-%patch50
-%patch51
-%patch52
-%patch53
-%patch54
-%patch55
# we build three SAPI
mkdir -p build-apache2
mkdir -p build-fastcgi/sapi/cgi/libfcgi
@@ -1507,7 +1487,7 @@
# export flags
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -D_GNU_SOURCE -DLDAP_DEPRECATED"
CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -D_GNU_SOURCE -DLDAP_DEPRECATED"
-%if %{?suse_version:%suse_version}%{?!suse_version:0} > 1000
+%if 0%{?suse_version} > 1000
CFLAGS="$CFLAGS -fstack-protector"
CXXFLAGS="$CFLAGS -fstack-protector"
%endif
@@ -1524,7 +1504,7 @@
shift
../configure \
--prefix=%{_prefix} \
- --datadir=%{_datadir}/%{name} \
+ --datadir=%{_datadir}/%{pkg_name} \
--mandir=%{_mandir} \
--bindir=%{_bindir} \
--with-libdir=%{_lib} \
@@ -1533,7 +1513,6 @@
--with-config-file-path=%{php_sysconf}/$sapi \
--with-config-file-scan-dir=%{php_sysconf}/conf.d \
--with-exec-dir=%{safemode_dir} \
- --enable-magic-quotes \
--enable-libxml \
--enable-session \
--with-mm \
@@ -1541,7 +1520,6 @@
--enable-xml \
--enable-simplexml \
--enable-spl \
- --enable-safe-mode \
--enable-sigchild \
--disable-debug \
--enable-memory-limit \
@@ -1555,7 +1533,7 @@
# - simplexml is needed by spl
# - session need to be builtin, otherwise sqlite and other session engines fail
# - pcre is needed for PEAR
- make %{?jobs:-j%jobs PHP_PEAR_PHP_BIN=%{_bindir}/%{name}}
+ make %{?jobs:-j%jobs PHP_PEAR_PHP_BIN=%{_bindir}/%{pkg_name}}
popd
}
# perform all builds
@@ -1605,18 +1583,21 @@
--enable-gd-native-ttf \
--with-xpm-dir=%{_usr}/X11R6 \
--with-freetype-dir=%{_usr} \
- --with-ttf \
--with-png-dir=%{_usr} \
--with-jpeg-dir=%{_usr} \
--with-zlib-dir=%{_usr} \
--with-gettext=shared \
--with-gmp=shared \
+ --enable-hash=shared \
--with-iconv=shared \
--with-imap=shared \
--with-kerberos \
--with-imap-ssl \
--with-ldap=shared \
--with-ldap-sasl=%{_usr} \
+%if %{with_libedit}
+ --with-libedit=%{_usr} \
+%endif
--with-mcrypt=shared \
--with-mhash=shared \
--with-mysql=shared,%{_usr} \
@@ -1626,7 +1607,9 @@
--with-unixODBC=shared,%{_usr} \
--with-openssl=shared \
--with-pgsql=shared \
+%if %{with_spell}
--with-pspell=shared \
+%endif
--with-snmp=shared \
--with-xmlrpc=shared \
--enable-xmlreader=shared \
@@ -1643,6 +1626,7 @@
--with-pdo_sqlite=shared \
--with-pdo-mysql=shared,%{_usr} \
--with-pdo-pgsql=shared,%{_usr} \
+ --with-pdo-odbc=shared,unixODBC,%{_usr} \
--with-sqlite=shared \
--enable-sqlite-utf8 \
--disable-cgi
@@ -1654,15 +1638,13 @@
#disabled extensions
# --enable-embedded-mysqli \
-# doesn't compile
-# --with-pdo-odbc=unixODBC,%{_usr} \
%install
# install function
Install()
{
pushd build-$1
- make install INSTALL_ROOT=$RPM_BUILD_ROOT PHP_PEAR_PHP_BIN=%{_bindir}/%{name}
+ make install INSTALL_ROOT=$RPM_BUILD_ROOT PHP_PEAR_PHP_BIN=%{_bindir}/%{pkg_name}
popd
}
# do the actual installation
@@ -1704,7 +1686,7 @@
sed "s=@EXTERN_MODULES@=$extern_modules=;s=@BUILTIN_MODULES@=$builtin_modules=" php-suse-addons/README.SUSE > README.SUSE
# apache configuration
mkdir -p $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d
-install -m 644 php-suse-addons/sysconfig.apache2 $RPM_BUILD_ROOT/%{apache2_sysconfdir}/conf.d/%{name}.conf
+install -m 644 php-suse-addons/sysconfig.apache2 $RPM_BUILD_ROOT/%{apache2_sysconfdir}/conf.d/%{pkg_name}.conf
# rename to php5
pushd $RPM_BUILD_ROOT%{cgi_dir}
mv php php5
@@ -1718,7 +1700,7 @@
mv php.1 php5.1
popd
# directory for sessions
-install -d $RPM_BUILD_ROOT/var/lib/%{name}
+install -d $RPM_BUILD_ROOT/var/lib/%{pkg_name}
# directory for safe mode
install -d $RPM_BUILD_ROOT/%{safemode_dir}
# documentation
@@ -1744,19 +1726,19 @@
%dir %{php_sysconf}/conf.d
%dir %{php_sysconf}/cli
%config(noreplace) %{php_sysconf}/cli/php.ini
-%{_bindir}/%{name}
-%dir %{_libdir}/%{name}
+%{_bindir}/%{pkg_name}
+%dir %{_libdir}/%{pkg_name}
%dir %{safemode_dir}
%dir %{extension_dir}
-%dir %{_datadir}/%{name}
-%attr(0755, wwwrun, root) %dir /var/lib/%{name}
+%dir %{_datadir}/%{pkg_name}
+%attr(0755, wwwrun, root) %dir /var/lib/%{pkg_name}
%files devel
%defattr(-, root, root)
-%{_includedir}/%{name}
+%{_includedir}/%{pkg_name}
%{_bindir}/phpize
%{_bindir}/php-config
-%{_datadir}/%{name}/build
+%{_datadir}/%{pkg_name}/build
%files pear
%defattr(-, root, root)
@@ -1766,7 +1748,7 @@
%files fastcgi
%defattr(-, root, root)
-%{cgi_dir}/%{name}
+%{cgi_dir}/%{pkg_name}
%dir %{php_sysconf}/fastcgi
%config(noreplace) %{php_sysconf}/fastcgi/php.ini
@@ -1775,7 +1757,7 @@
%{apache2_libexecdir}/mod_php5.so
%dir %{php_sysconf}/apache2
%config(noreplace) %{php_sysconf}/apache2/php.ini
-%config(noreplace) %{apache2_sysconfdir}/conf.d/%{name}.conf
+%config(noreplace) %{apache2_sysconfdir}/conf.d/%{pkg_name}.conf
%files bcmath
%defattr(644,root,root,755)
@@ -1847,6 +1829,11 @@
%{extension_dir}/gmp.so
%config(noreplace) %{php_sysconf}/conf.d/gmp.ini
+%files hash
+%defattr(644,root,root,755)
+%{extension_dir}/hash.so
+%config(noreplace) %{php_sysconf}/conf.d/hash.ini
+
%files iconv
%defattr(644,root,root,755)
%{extension_dir}/iconv.so
@@ -1896,6 +1883,8 @@
%defattr(644,root,root,755)
%{extension_dir}/odbc.so
%config(noreplace) %{php_sysconf}/conf.d/odbc.ini
+%{extension_dir}/pdo_odbc.so
+%config(noreplace) %{php_sysconf}/conf.d/pdo_odbc.ini
%files openssl
%defattr(644,root,root,755)
@@ -1926,10 +1915,6 @@
%defattr(644,root,root,755)
%{extension_dir}/pdo_sqlite.so
%config(noreplace) %{php_sysconf}/conf.d/pdo_sqlite.ini
-#%files pdo_odbc
-#%defattr(644,root,root,755)
-#%{extension_dir}/pdo_odbc.so
-#%config(noreplace) %{php_sysconf}/conf.d/pdo_odbc.ini
%files pgsql
%defattr(644,root,root,755)
@@ -1940,11 +1925,13 @@
%defattr(644,root,root,755)
%{extension_dir}/posix.so
%config(noreplace) %{php_sysconf}/conf.d/posix.ini
+%if %{with_spell}
%files pspell
%defattr(644,root,root,755)
%{extension_dir}/pspell.so
%config(noreplace) %{php_sysconf}/conf.d/pspell.ini
+%endif
%files shmop
%defattr(644,root,root,755)
@@ -2027,6 +2014,38 @@
%config(noreplace) %{php_sysconf}/conf.d/zlib.ini
%changelog -n php5
+* Wed Jul 26 2006 - postadal@suse.cz
+- updated to version 5.1.4
+ * FastCGI interface was completely reimplemented
+ * multitude of improvements to the SPL, SimpleXML, GD, CURL and
+ Reflection extensions
+ * support for many additional date formats added to the strtotime()
+ * a performance improvements added to the engine and core extensions
+ * added imap_savebody() that allows message body to be written to a file
+ * added lchown() and lchgrp() to change user/group ownership of symlinks
+ * upgraded bundled PCRE library to version 6.6
+- merged changes from openSUSE build service
+ * removed unneeded sablot-devel,sqlite-devel,pcre-devel,fam-devel
+ and libmcal from BuildRequires
+ * added php-ctype,php-dom,php-iconv,php-pdo,php-pdo_sqlite,php-sqlite,
+ php-tokenizer,php-xmlreader,php-xmlwriter to Recommends
+ * added php-mbstring php-gd php-pear php-gettext php-mysqli to Suggests
+ * added support for optional readline(libedit) for CLI
+ (disabled by default)
+ * patches for zendengine (ze2_bugs.patch), xsl (xsl_bugs.patch),
+ curl (curl.patch) and mbstring bugs (mbstring_bugs.patch),
+ big soap patch (soap.patch)
+ * removed obsoleted patches
+ * fixed Safe Mode Bypass [#188243] (standard.patch)
+ * upstream patches
+ [php#37306, php#37416, php#37587, php#37720]
+ [php#37576, php#37496, php#37341, php#37313, php#37256] (cgi_bugs.patch)
+ [php#37346, php#37360] (gd-fixes.patch)
+ * fixed build inconsistences, added php-hash module [#173023]
+ * added pdo_odbc.so to php-odbc module [#190614]
+ * build without explicit safe_mode and magic_quotes (unneeded)
+ * removed useless GD --with-ttf configure option, only suitable
+ for freetype 1
* Fri Jun 09 2006 - poeml@suse.de
- fix BuildRequires to build on SUSE Linux 10.1, 10.0, 9.3
- use the -fstack-protector compile switch only on 10.0 and newer
++++++ cgi_bugs.patch ++++++
--- sapi/cgi/cgi_main.c 3 May 2006 19:40:58 -0000 1.267.2.15
+++ sapi/cgi/cgi_main.c 24 May 2006 07:55:38 -0000 1.267.2.16
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cgi_main.c,v 1.267.2.15 2006/05/03 19:40:58 tony2001 Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.16 2006/05/24 07:55:38 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -432,14 +432,18 @@
void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
{
if (PG(http_globals)[TRACK_VARS_ENV] &&
- array_ptr != PG(http_globals)[TRACK_VARS_ENV]) {
+ array_ptr != PG(http_globals)[TRACK_VARS_ENV] &&
+ Z_TYPE_P(PG(http_globals)[TRACK_VARS_ENV]) == IS_ARRAY &&
+ zend_hash_num_elements(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_ENV])) > 0) {
zval_dtor(array_ptr);
*array_ptr = *PG(http_globals)[TRACK_VARS_ENV];
INIT_PZVAL(array_ptr);
zval_copy_ctor(array_ptr);
return;
} else if (PG(http_globals)[TRACK_VARS_SERVER] &&
- array_ptr != PG(http_globals)[TRACK_VARS_SERVER]) {
+ array_ptr != PG(http_globals)[TRACK_VARS_SERVER] &&
+ Z_TYPE_P(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY &&
+ zend_hash_num_elements(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER])) > 0) {
zval_dtor(array_ptr);
*array_ptr = *PG(http_globals)[TRACK_VARS_SERVER];
INIT_PZVAL(array_ptr);
Index: sapi/cgi/fastcgi.c
===================================================================
RCS file: /repository/php-src/sapi/cgi/fastcgi.c,v
retrieving revision 1.4.2.12
retrieving revision 1.4.2.17
--- sapi/cgi/fastcgi.c 3 May 2006 15:39:16 -0000 1.4.2.12
+++ sapi/cgi/fastcgi.c 7 Jun 2006 14:28:26 -0000 1.4.2.17
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fastcgi.c,v 1.4.2.12 2006/05/03 15:39:16 dmitry Exp $ */
+/* $Id: fastcgi.c,v 1.4.2.17 2006/06/07 14:28:26 stas Exp $ */
#include "fastcgi.h"
#include "php.h"
@@ -69,7 +69,7 @@
# include
# include
# include
-# include
+# include
#ifndef INADDR_NONE
#define INADDR_NONE ((unsigned long) -1)
@@ -401,7 +401,7 @@
int name_len, val_len;
char *s;
- while (p < end) {
+ while (p < end && n < FCGI_MAX_ENV_VARS - 1) {
name_len = *p++;
if (name_len >= 128) {
name_len = ((name_len & 0x7f) << 24);
@@ -424,10 +424,6 @@
p += val_len;
s[name_len+1+val_len] = '\0';
n++;
- if (n > sizeof(req->env)/sizeof(req->env[0])) {
- /* TODO: to many environment variables */
- return n;
- }
}
return n;
}
@@ -669,12 +665,14 @@
}
FCGI_UNLOCK(req->listen_socket);
#else
+ {
sa_t sa;
socklen_t len = sizeof(sa);
FCGI_LOCK(req->listen_socket);
req->fd = accept(req->listen_socket, (struct sockaddr *)&sa, &len);
FCGI_UNLOCK(req->listen_socket);
+ }
#endif
if (req->fd < 0 && (in_shutdown || errno != EINTR)) {
@@ -769,15 +767,17 @@
if (req->out_hdr && req->out_hdr->type != type) {
close_packet(req);
}
- rest = len;
#if 0
- /* Unoptinmzed, but clear version */
+ /* Unoptimized, but clear version */
+ rest = len;
while (rest > 0) {
limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
if (!req->out_hdr) {
if (limit < sizeof(fcgi_header)) {
- fcgi_flush(req, 0);
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
}
open_packet(req, type);
}
@@ -791,32 +791,41 @@
req->out_pos += limit;
rest -= limit;
str += limit;
- fcgi_flush(req, 0);
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
}
}
#else
- /* Optinmzed version */
+ /* Optimized version */
+ limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
if (!req->out_hdr) {
- rest += sizeof(fcgi_header);
+ limit -= sizeof(fcgi_header);
+ if (limit < 0) limit = 0;
}
- limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
- if (rest < limit) {
+ if (len < limit) {
if (!req->out_hdr) {
open_packet(req, type);
}
memcpy(req->out_pos, str, len);
req->out_pos += len;
- } else if (rest - limit < sizeof(req->out_buf) - sizeof(fcgi_header)) {
+ } else if (len - limit < sizeof(req->out_buf) - sizeof(fcgi_header)) {
if (!req->out_hdr) {
open_packet(req, type);
}
- memcpy(req->out_pos, str, limit);
- req->out_pos += limit;
- fcgi_flush(req, 0);
- open_packet(req, type);
- memcpy(req->out_pos, str + limit, len - limit);
- req->out_pos += len - limit;
+ if (limit > 0) {
+ memcpy(req->out_pos, str, limit);
+ req->out_pos += limit;
+ }
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ if (len > limit) {
+ open_packet(req, type);
+ memcpy(req->out_pos, str + limit, len - limit);
+ req->out_pos += len - limit;
+ }
} else {
int pos = 0;
int pad;
@@ -826,7 +835,9 @@
open_packet(req, type);
fcgi_make_header(req->out_hdr, type, req->id, 0xfff8);
req->out_hdr = NULL;
- fcgi_flush(req, 0);
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
if (safe_write(req, str + pos, 0xfff8) != 0xfff8) {
req->keep = 0;
return -1;
@@ -840,7 +851,9 @@
open_packet(req, type);
fcgi_make_header(req->out_hdr, type, req->id, (len - pos) - rest);
req->out_hdr = NULL;
- fcgi_flush(req, 0);
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
if (safe_write(req, str + pos, (len - pos) - rest) != (len - pos) - rest) {
req->keep = 0;
return -1;
@@ -900,7 +913,9 @@
}
env++;
}
- *env = fcgi_strndup(var, var_len);
+ if (env != &req->env[FCGI_MAX_ENV_VARS - 1]) {
+ *env = fcgi_strndup(var, var_len);
+ }
}
}
Index: sapi/cgi/fastcgi.h
===================================================================
RCS file: /repository/php-src/sapi/cgi/fastcgi.h,v
retrieving revision 1.2.2.4
retrieving revision 1.2.2.6
--- sapi/cgi/fastcgi.h 3 May 2006 15:39:16 -0000 1.2.2.4
+++ sapi/cgi/fastcgi.h 25 May 2006 07:06:04 -0000 1.2.2.6
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fastcgi.h,v 1.2.2.4 2006/05/03 15:39:16 dmitry Exp $ */
+/* $Id: fastcgi.h,v 1.2.2.6 2006/05/25 07:06:04 dmitry Exp $ */
/* FastCGI protocol */
@@ -26,6 +26,8 @@
#define FCGI_KEEP_CONN 1
+#define FCGI_MAX_ENV_VARS 256
+
typedef enum _fcgi_role {
FCGI_RESPONDER = 1,
FCGI_AUTHORIZER = 2,
@@ -105,7 +107,7 @@
unsigned char out_buf[1024*8];
unsigned char reserved[sizeof(fcgi_end_request_rec)];
- char *env[128];
+ char *env[FCGI_MAX_ENV_VARS];
} fcgi_request;
int fcgi_init(void);
@@ -160,7 +162,7 @@
#define FCGX_PutStr(str, len, stream) fcgi_write((stream).req, (stream).type, str, len)
#define FCGX_PutS(str, len, stream) fcgi_write((stream).req, (stream).type, str, len)
-#define FCGX_FFlush(stream) fcgi_flush((stream).req, 0)
+#define FCGX_FFlush(stream) (fcgi_flush((stream).req, 0)?0:-1)
#define FCGX_GetStr(str, len, stream) fcgi_read((stream).req, str, len)
#define FCGX_GetParam(var, envp) fcgi_getenv_helper(envp, var, strlen(var));
Index: sapi/cli/php_cli.c
===================================================================
RCS file: /repository/php-src/sapi/cli/php_cli.c,v
retrieving revision 1.129.2.13
retrieving revision 1.129.2.14
++++++ curl.patch ++++++
--- ext/curl/interface.c 13 Apr 2006 11:26:10 -0000 1.62.2.14
+++ ext/curl/interface.c 21 May 2006 16:33:39 -0000 1.62.2.15
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.62.2.14 2006/04/13 11:26:10 tony2001 Exp $ */
+/* $Id: interface.c,v 1.62.2.15 2006/05/21 16:33:39 iliaa Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -161,11 +161,16 @@
strncasecmp(str, "file:", sizeof("file:") - 1) == 0) \
{ \
php_url *tmp_url; \
- \
+ \
if (!(tmp_url = php_url_parse_ex(str, len))) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid url '%s'", str); \
RETURN_FALSE; \
} \
+ \
+ if (php_memnstr(str, tmp_url->path, strlen(tmp_url->path), str + len)) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Url '%s' contains unencoded control characters.", str); \
+ RETURN_FALSE; \
+ } \
\
if (tmp_url->query || tmp_url->fragment || php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
(PG(safe_mode) && !php_checkuid(tmp_url->path, "rb+", CHECKUID_CHECK_MODE_PARAM)) \
Index: ext/gd/libgd/gd_gif_in.c
===================================================================
RCS file: /repository/php-src/ext/gd/libgd/gd_gif_in.c,v
retrieving revision 1.5.4.2
retrieving revision 1.5.4.4
++++++ main_bugs.patch ++++++
--- main/main.c 12 Apr 2006 12:49:39 -0000 1.640.2.23
+++ main/main.c 11 May 2006 22:11:17 -0000 1.640.2.24
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: main.c,v 1.640.2.23 2006/04/12 12:49:39 tony2001 Exp $ */
+/* $Id: main.c,v 1.640.2.24 2006/05/11 22:11:17 dmitry Exp $ */
/* {{{ includes
*/
@@ -1723,11 +1723,11 @@
} else {
append_file_p = NULL;
}
- if (PG(max_input_time) == -1) {
+ if (PG(max_input_time) != -1) {
#ifdef PHP_WIN32
zend_unset_timeout(TSRMLS_C);
#endif
- zend_set_timeout(EG(timeout_seconds));
+ zend_set_timeout(INI_INT("max_execution_time"));
}
retval = (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 3, prepend_file_p, primary_file, append_file_p) == SUCCESS);
Index: main/php_open_temporary_file.c
===================================================================
RCS file: /repository/php-src/main/php_open_temporary_file.c,v
retrieving revision 1.34.2.1
retrieving revision 1.34.2.2
--- main/php_open_temporary_file.c 1 Jan 2006 12:50:17 -0000 1.34.2.1
+++ main/php_open_temporary_file.c 23 May 2006 23:22:26 -0000 1.34.2.2
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_open_temporary_file.c,v 1.34.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_open_temporary_file.c,v 1.34.2.2 2006/05/23 23:22:26 iliaa Exp $ */
#include "php.h"
@@ -114,17 +114,16 @@
path_len = strlen(path);
- if (!(opened_path = emalloc(MAXPATHLEN))) {
- return -1;
- }
-
if (!path_len || IS_SLASH(path[path_len - 1])) {
trailing_slash = "";
} else {
trailing_slash = "/";
}
- (void)snprintf(opened_path, MAXPATHLEN, "%s%s%sXXXXXX", path, trailing_slash, pfx);
+ if (spprintf(&opened_path, 0, "%s%s%sXXXXXX", path, trailing_slash, pfx) >= MAXPATHLEN) {
+ efree(opened_path);
+ return -1;
+ }
#ifdef PHP_WIN32
if (GetTempFileName(path, pfx, 0, opened_path)) {
Index: main/php_version.h
===================================================================
RCS file: /repository/php-src/main/php_version.h,v
retrieving revision 1.112.2.36
retrieving revision 1.112.2.37
--- main/streams/filter.c 26 Feb 2006 10:49:51 -0000 1.17.2.3
+++ main/streams/filter.c 19 May 2006 10:24:19 -0000 1.17.2.4
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: filter.c,v 1.17.2.3 2006/02/26 10:49:51 helly Exp $ */
+/* $Id: filter.c,v 1.17.2.4 2006/05/19 10:24:19 tony2001 Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -251,7 +251,7 @@
PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval *filterparams, int persistent TSRMLS_DC)
{
HashTable *filter_hash = (FG(stream_filters) ? FG(stream_filters) : &stream_filters_hash);
- php_stream_filter_factory *factory;
+ php_stream_filter_factory *factory = NULL;
php_stream_filter *filter = NULL;
int n;
char *period;
Index: sapi/apache/mod_php5.c
===================================================================
RCS file: /repository/php-src/sapi/apache/mod_php5.c,v
retrieving revision 1.19.2.7
retrieving revision 1.19.2.9
++++++ mbstring_bugs.patch ++++++
--- ext/mbstring/mbstring.c 26 Mar 2006 02:19:50 -0000 1.224.2.22
+++ ext/mbstring/mbstring.c 11 May 2006 14:47:34 -0000 1.224.2.23
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.224.2.22 2006/03/26 02:19:50 masugata Exp $ */
+/* $Id: mbstring.c,v 1.224.2.23 2006/05/11 14:47:34 masugata Exp $ */
/*
* PHP 4 Multibyte String module "mbstring"
@@ -694,14 +694,18 @@
if (new_value != NULL) {
if (strcasecmp("none", new_value) == 0) {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
} else if (strcasecmp("long", new_value) == 0) {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
} else {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
if (new_value_length >0) {
c = strtol(new_value, &endptr, 0);
if (*endptr == '\0') {
MBSTRG(filter_illegal_substchar) = c;
+ MBSTRG(current_filter_illegal_substchar) = c;
}
}
}
@@ -3347,11 +3351,15 @@
PHP_FUNCTION(mb_get_info)
{
char *typ = NULL;
- int typ_len;
+ int typ_len, n;
char *name;
const struct mb_overload_def *over_func;
- zval *row;
+ zval *row1, *row2;
const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language));
+ enum mbfl_no_encoding *entry;
+#ifdef ZEND_MULTIBYTE
+ zval *row3;
+#endif /* ZEND_MULTIBYTE */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) {
RETURN_FALSE;
@@ -3370,15 +3378,15 @@
}
if (MBSTRG(func_overload)){
over_func = &(mb_ovld[0]);
- MAKE_STD_ZVAL(row);
- array_init(row);
+ MAKE_STD_ZVAL(row1);
+ array_init(row1);
while (over_func->type > 0) {
if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) {
- add_assoc_string(row, over_func->orig_func, over_func->ovld_func, 1);
+ add_assoc_string(row1, over_func->orig_func, over_func->ovld_func, 1);
}
over_func++;
}
- add_assoc_zval(return_value, "func_overload", row);
+ add_assoc_zval(return_value, "func_overload", row1);
} else {
add_assoc_string(return_value, "func_overload", "no overload", 1);
}
@@ -3393,6 +3401,57 @@
add_assoc_string(return_value, "mail_body_encoding", name, 1);
}
}
+ add_assoc_long(return_value, "illegal_chars", MBSTRG(illegalchars));
+ if (MBSTRG(encoding_translation)) {
+ add_assoc_string(return_value, "encoding_translation", "On", 1);
+ } else {
+ add_assoc_string(return_value, "encoding_translation", "Off", 1);
+ }
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ add_assoc_string(return_value, "language", name, 1);
+ }
+ n = MBSTRG(current_detect_order_list_size);
+ entry = MBSTRG(current_detect_order_list);
+ if(n > 0) {
+ MAKE_STD_ZVAL(row2);
+ array_init(row2);
+ while (n > 0) {
+ if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
+ add_next_index_string(row2, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ add_assoc_zval(return_value, "detect_order", row2);
+ }
+ if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
+ add_assoc_string(return_value, "substitute_character", "none", 1);
+ } else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
+ add_assoc_string(return_value, "substitute_character", "long", 1);
+ } else {
+ add_assoc_long(return_value, "substitute_character", MBSTRG(current_filter_illegal_substchar));
+ }
+ if (MBSTRG(strict_detection)) {
+ add_assoc_string(return_value, "strict_detection", "On", 1);
+ } else {
+ add_assoc_string(return_value, "strict_detection", "Off", 1);
+ }
+#ifdef ZEND_MULTIBYTE
+ entry = MBSTRG(script_encoding_list);
+ n = MBSTRG(script_encoding_list_size);
+ if(n > 0) {
+ MAKE_STD_ZVAL(row3);
+ array_init(row3);
+ while (n > 0) {
+ if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
+ add_next_index_string(row3, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ add_assoc_zval(return_value, "script_encoding", row3);
+ }
+#endif /* ZEND_MULTIBYTE */
} else if (!strcasecmp("internal_encoding", typ)) {
if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) {
RETVAL_STRING(name, 1);
@@ -3432,7 +3491,63 @@
}
} else if (!strcasecmp("illegal_chars", typ)) {
RETVAL_LONG(MBSTRG(illegalchars));
+ } else if (!strcasecmp("encoding_translation", typ)) {
+ if (MBSTRG(encoding_translation)) {
+ RETVAL_STRING("On", 1);
+ } else {
+ RETVAL_STRING("Off", 1);
+ }
+ } else if (!strcasecmp("language", typ)) {
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ RETVAL_STRING(name, 1);
+ }
+ } else if (!strcasecmp("detect_order", typ)) {
+ n = MBSTRG(current_detect_order_list_size);
+ entry = MBSTRG(current_detect_order_list);
+ if(n > 0) {
+ array_init(return_value);
+ while (n > 0) {
+ name = (char *)mbfl_no_encoding2name(*entry);
+ if (name) {
+ add_next_index_string(return_value, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ }
+ } else if (!strcasecmp("substitute_character", typ)) {
+ if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
+ RETVAL_STRING("none", 1);
+ } else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
+ RETVAL_STRING("long", 1);
+ } else {
+ RETVAL_LONG(MBSTRG(current_filter_illegal_substchar));
+ }
+ } else if (!strcasecmp("strict_detection", typ)) {
+ if (MBSTRG(strict_detection)) {
+ RETVAL_STRING("On", 1);
+ } else {
+ RETVAL_STRING("Off", 1);
+ }
} else {
+#ifdef ZEND_MULTIBYTE
+ if (!strcasecmp("script_encoding", typ)) {
+ entry = MBSTRG(script_encoding_list);
+ n = MBSTRG(script_encoding_list_size);
+ if(n > 0) {
+ array_init(return_value);
+ while (n > 0) {
+ name = (char *)mbfl_no_encoding2name(*entry);
+ if (name) {
+ add_next_index_string(return_value, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ }
+ return;
+ }
+#endif /* ZEND_MULTIBYTE */
RETURN_FALSE;
}
}
Index: ext/oci8/config.w32
===================================================================
RCS file: /repository/php-src/ext/oci8/config.w32,v
retrieving revision 1.3.4.2
retrieving revision 1.3.4.4
++++++ php-5.1.2.tar.bz2 -> php-5.1.4.tar.bz2 ++++++
php5/php-5.1.2.tar.bz2 php5/php-5.1.4.tar.bz2 differ: char 11, line 1
++++++ php-bug-37306.patch ++++++
--- sapi/cli/php_cli.c 21 Feb 2006 21:15:13 -0000 1.129.2.13
+++ sapi/cli/php_cli.c 11 May 2006 22:11:17 -0000 1.129.2.14
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_cli.c,v 1.129.2.13 2006/02/21 21:15:13 johannes Exp $ */
+/* $Id: php_cli.c,v 1.129.2.14 2006/05/11 22:11:17 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -708,6 +708,7 @@
INI_HARDCODED("implicit_flush", "1");
INI_HARDCODED("output_buffering", "0");
INI_HARDCODED("max_execution_time", "0");
+ INI_HARDCODED("max_input_time", "-1");
while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 0)) != -1) {
switch (c) {
Index: tests/basic/021.phpt
===================================================================
RCS file: /repository/php-src/tests/basic/Attic/021.phpt,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.3
++++++ php-bug-37416.patch ++++++
--- ext/spl/spl_iterators.c 13 Apr 2006 13:21:43 -0000 1.73.2.30
+++ ext/spl/spl_iterators.c 12 May 2006 09:43:07 -0000 1.73.2.31
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.c,v 1.73.2.30 2006/04/13 13:21:43 tony2001 Exp $ */
+/* $Id: spl_iterators.c,v 1.73.2.31 2006/05/12 09:43:07 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -2063,11 +2063,20 @@
if (iter->funcs->rewind) {
iter->funcs->rewind(iter TSRMLS_CC);
}
+ if (EG(exception)) {
+ return;
+ }
while (iter->funcs->valid(iter TSRMLS_CC) == SUCCESS) {
iter->funcs->get_current_data(iter, &data TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
(*data)->refcount++;
if (iter->funcs->get_current_key) {
key_type = iter->funcs->get_current_key(iter, &str_key, &str_key_len, &int_key TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
switch(key_type) {
case HASH_KEY_IS_STRING:
add_assoc_zval_ex(return_value, str_key, str_key_len, *data);
@@ -2081,8 +2090,14 @@
add_next_index_zval(return_value, *data);
}
iter->funcs->move_forward(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
iter->funcs->dtor(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
/* }}} */
@@ -2103,11 +2118,23 @@
if (iter->funcs->rewind) {
iter->funcs->rewind(iter TSRMLS_CC);
}
+ if (EG(exception)) {
+ return;
+ }
while (iter->funcs->valid(iter TSRMLS_CC) == SUCCESS) {
+ if (EG(exception)) {
+ return;
+ }
count++;
iter->funcs->move_forward(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
iter->funcs->dtor(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
RETURN_LONG(count);
}
Index: ext/standard/array.c
===================================================================
RCS file: /repository/php-src/ext/standard/array.c,v
retrieving revision 1.308.2.21
retrieving revision 1.308.2.22
++++++ php-bug-37587.patch ++++++
--- ext/wddx/wddx.c 23 Apr 2006 16:02:05 -0000 1.119.2.10
+++ ext/wddx/wddx.c 25 May 2006 10:01:30 -0000 1.119.2.11
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: wddx.c,v 1.119.2.10 2006/04/23 16:02:05 iliaa Exp $ */
+/* $Id: wddx.c,v 1.119.2.11 2006/05/25 10:01:30 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -751,7 +751,7 @@
} else if (!strcmp(name, EL_CHAR)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_CHAR_CODE) && atts[++i] && atts[i][0]) {
char tmp_buf[2];
@@ -771,7 +771,7 @@
} else if (!strcmp(name, EL_BOOLEAN)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_VALUE) && atts[++i] && atts[i][0]) {
ent.type = ST_BOOLEAN;
SET_STACK_VARNAME;
@@ -812,7 +812,7 @@
} else if (!strcmp(name, EL_VAR)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_NAME) && atts[++i] && atts[i][0]) {
char *decoded;
int decoded_len;
@@ -829,7 +829,7 @@
MAKE_STD_ZVAL(ent.data);
array_init(ent.data);
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], "fieldNames") && atts[++i] && atts[i][0]) {
zval *tmp;
char *key;
@@ -869,7 +869,7 @@
ent.varname = NULL;
ent.data = NULL;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_NAME) && atts[++i] && atts[i][0]) {
char *decoded;
int decoded_len;
Index: ext/xsl/xsltprocessor.c
===================================================================
RCS file: /repository/php-src/ext/xsl/xsltprocessor.c,v
retrieving revision 1.39.2.2
retrieving revision 1.39.2.3
++++++ php-bug-37720.patch ++++++
--- sapi/apache2handler/apache_config.c 1 Jan 2006 12:50:18 -0000 1.7.2.1
+++ sapi/apache2handler/apache_config.c 9 Jun 2006 15:13:58 -0000 1.7.2.2
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: apache_config.c,v 1.7.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: apache_config.c,v 1.7.2.2 2006/06/09 15:13:58 mike Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -118,27 +118,31 @@
void *merge_php_config(apr_pool_t *p, void *base_conf, void *new_conf)
{
- php_conf_rec *d = base_conf, *e = new_conf;
+ php_conf_rec *d = base_conf, *e = new_conf, *n = NULL;
php_dir_entry *pe;
php_dir_entry *data;
char *str;
uint str_len;
ulong num_index;
- phpapdebug((stderr, "Merge dir (%p) (%p)\n", base_conf, new_conf));
+ n = create_php_config(p, "merge_php_config");
+ zend_hash_copy(&n->config, &e->config, NULL, NULL, sizeof(php_dir_entry));
+
+ phpapdebug((stderr, "Merge dir (%p)+(%p)=(%p)\n", base_conf, new_conf, n));
for (zend_hash_internal_pointer_reset(&d->config);
zend_hash_get_current_key_ex(&d->config, &str, &str_len,
&num_index, 0, NULL) == HASH_KEY_IS_STRING;
zend_hash_move_forward(&d->config)) {
pe = NULL;
zend_hash_get_current_data(&d->config, (void **) &data);
- if (zend_hash_find(&e->config, str, str_len, (void **) &pe) == SUCCESS) {
+ if (zend_hash_find(&n->config, str, str_len, (void **) &pe) == SUCCESS) {
if (pe->status >= data->status) continue;
}
- zend_hash_update(&e->config, str, str_len, data, sizeof(*data), NULL);
+ zend_hash_update(&n->config, str, str_len, data, sizeof(*data), NULL);
phpapdebug((stderr, "ADDING/OVERWRITING %s (%d vs. %d)\n", str, data->status, pe?pe->status:-1));
}
- return new_conf;
+
+ return n;
}
char *get_php_config(void *conf, char *name, size_t name_len)
Index: sapi/cgi/cgi_main.c
===================================================================
RCS file: /repository/php-src/sapi/cgi/cgi_main.c,v
retrieving revision 1.267.2.15
retrieving revision 1.267.2.16
++++++ php5-gd-fixes.patch ++++++
--- ext/gd/libgd/gd_gif_in.c 24 Sep 2005 14:39:16 -0000 1.5.4.2
+++ ext/gd/libgd/gd_gif_in.c 8 May 2006 11:56:14 -0000 1.5.4.4
@@ -44,7 +44,7 @@
#define LOCALCOLORMAP 0x80
#define BitSet(byte, bit) (((byte) & (bit)) == (bit))
-#define ReadOK(file,buffer,len) (gdGetBuf(buffer, len, file) != 0)
+#define ReadOK(file,buffer,len) (gdGetBuf(buffer, len, file) > 0)
#define LM_to_uint(a,b) (((b)<<8)|(a))
@@ -147,6 +147,9 @@
Background = buf[5];
AspectRatio = buf[6];
+ imw = LM_to_uint(buf[0],buf[1]);
+ imh = LM_to_uint(buf[2],buf[3]);
+
if (BitSet(buf[4], LOCALCOLORMAP)) { /* Global Colormap */
if (ReadColorMap(fd, BitPixel, ColorMap)) {
return 0;
@@ -182,16 +185,18 @@
bitPixel = 1<<((buf[8]&0x07)+1);
- imw = LM_to_uint(buf[4],buf[5]);
- imh = LM_to_uint(buf[6],buf[7]);
- if (!(im = gdImageCreate(imw, imh))) {
- return 0;
- }
- im->interlace = BitSet(buf[8], INTERLACE);
+
if (! useGlobalColormap) {
if (ReadColorMap(fd, bitPixel, localColorMap)) {
return 0;
}
+ }
+
+ if (!(im = gdImageCreate(imw, imh))) {
+ return 0;
+ }
+ im->interlace = BitSet(buf[8], INTERLACE);
+ if (! useGlobalColormap) {
ReadImage(im, fd, imw, imh, localColorMap,
BitSet(buf[8], INTERLACE));
/*1.4//imageCount != imageNumber); */
Index: ext/gd/tests/bug37346.gif
===================================================================
RCS file: ext/gd/tests/bug37346.gif
++++++ soap.patch ++++++
++++ 1922 lines (skipped)
++++++ standard.patch ++++++
--- ext/standard/array.c 12 Apr 2006 19:30:52 -0000 1.308.2.21
+++ ext/standard/array.c 3 Jun 2006 18:59:55 -0000 1.308.2.22
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: array.c,v 1.308.2.21 2006/04/12 19:30:52 johannes Exp $ */
+/* $Id: array.c,v 1.308.2.22 2006/06/03 18:59:55 andrei Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -92,6 +92,8 @@
#define DOUBLE_DRIFT_FIX 0.000000000000001
+ZEND_DECLARE_MODULE_GLOBALS(array)
+
/* {{{ php_array_init_globals
*/
static void php_array_init_globals(zend_array_globals *array_globals)
Index: ext/standard/basic_functions.c
===================================================================
RCS file: /repository/php-src/ext/standard/basic_functions.c,v
retrieving revision 1.725.2.31
retrieving revision 1.725.2.32
--- ext/standard/basic_functions.c 3 Apr 2006 13:46:11 -0000 1.725.2.31
+++ ext/standard/basic_functions.c 28 Jun 2006 22:08:59 -0000 1.725.2.32
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.725.2.31 2006/04/03 13:46:11 iliaa Exp $ */
+/* $Id: basic_functions.c,v 1.725.2.32 2006/06/28 22:08:59 iliaa Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -2034,7 +2034,7 @@
break;
case 3: /*save to a file */
- stream = php_stream_open_wrapper(opt, "a", IGNORE_URL | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
+ stream = php_stream_open_wrapper(opt, "a", IGNORE_URL_WIN | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
if (!stream)
return FAILURE;
php_stream_write(stream, message, strlen(message));
Index: ext/standard/php_array.h
===================================================================
RCS file: /repository/php-src/ext/standard/php_array.h,v
retrieving revision 1.50.2.2
retrieving revision 1.50.2.3
--- ext/standard/php_array.h 7 Feb 2006 17:54:24 -0000 1.50.2.2
+++ ext/standard/php_array.h 3 Jun 2006 18:59:55 -0000 1.50.2.3
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_array.h,v 1.50.2.2 2006/02/07 17:54:24 andrei Exp $ */
+/* $Id: php_array.h,v 1.50.2.3 2006/06/03 18:59:55 andrei Exp $ */
#ifndef PHP_ARRAY_H
#define PHP_ARRAY_H
@@ -108,8 +108,6 @@
int (*compare_func)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
ZEND_END_MODULE_GLOBALS(array)
-ZEND_DECLARE_MODULE_GLOBALS(array)
-
#ifdef ZTS
#define ARRAYG(v) TSRMG(array_globals_id, zend_array_globals *, v)
#else
Index: ext/standard/tests/array/array_chunk2.phpt
===================================================================
RCS file: ext/standard/tests/array/array_chunk2.phpt
++++++ xsl_bugs.patch ++++++
--- ext/xsl/xsltprocessor.c 1 Jan 2006 12:50:17 -0000 1.39.2.2
+++ ext/xsl/xsltprocessor.c 14 Jun 2006 09:43:22 -0000 1.39.2.3
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xsltprocessor.c,v 1.39.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: xsltprocessor.c,v 1.39.2.3 2006/06/14 09:43:22 chregu Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -231,8 +231,7 @@
}
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "php:function object type %d is not supported yet", obj->type);
- ZVAL_STRING(args[i], "", 0);
+ ZVAL_STRING(args[i], xmlXPathCastToString(obj), 1);
}
xmlXPathFreeObject(obj);
fci.params[i] = &args[i];
Index: main/config.w32.h
===================================================================
RCS file: /repository/php-src/main/config.w32.h,v
retrieving revision 1.85.4.1
retrieving revision 1.85.4.2
++++++ ze2_bugs.patch ++++++
Index: Zend/acinclude.m4
===================================================================
RCS file: /repository/Zend/acinclude.m4,v
retrieving revision 1.15.2.2
retrieving revision 1.15.2.3
diff -u -a -r1.15.2.2 -r1.15.2.3
--- Zend/acinclude.m4 1 Nov 2005 10:31:56 -0000 1.15.2.2
+++ Zend/acinclude.m4 2 Jun 2006 14:01:02 -0000 1.15.2.3
@@ -1,10 +1,10 @@
-dnl $Id: acinclude.m4,v 1.15.2.2 2005/11/01 10:31:56 sebastian Exp $
+dnl $Id: acinclude.m4,v 1.15.2.3 2006/06/02 14:01:02 sebastian Exp $
dnl
dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
- bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1"
+ bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
Index: Zend/zend_vm_def.h
===================================================================
RCS file: /repository/Zend/zend_vm_def.h,v
retrieving revision 1.59.2.29
retrieving revision 1.59.2.30
diff -u -a -r1.59.2.29 -r1.59.2.30
--- Zend/zend_vm_def.h 12 Apr 2006 11:37:50 -0000 1.59.2.29
+++ Zend/zend_vm_def.h 6 Jul 2006 15:39:23 -0000 1.59.2.30
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm_def.h,v 1.59.2.29 2006/04/12 11:37:50 dmitry Exp $ */
+/* $Id: zend_vm_def.h,v 1.59.2.30 2006/07/06 15:39:23 pollita Exp $ */
/* If you change this file, please regenerate the zend_vm_execute.h and
* zend_vm_opcodes.h files by running:
@@ -1158,7 +1158,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
Index: Zend/zend_vm_execute.h
===================================================================
RCS file: /repository/Zend/zend_vm_execute.h,v
retrieving revision 1.62.2.30
retrieving revision 1.62.2.31
diff -u -a -r1.62.2.30 -r1.62.2.31
--- Zend/zend_vm_execute.h 12 Apr 2006 11:37:50 -0000 1.62.2.30
+++ Zend/zend_vm_execute.h 6 Jul 2006 15:39:23 -0000 1.62.2.31
@@ -8674,7 +8674,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -10098,7 +10100,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -11525,7 +11529,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -13397,7 +13403,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -14592,7 +14600,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -15669,7 +15679,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -16707,7 +16719,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -18110,7 +18124,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -20644,7 +20660,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -22060,7 +22078,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -23479,7 +23499,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
@@ -25341,7 +25363,9 @@
if (container->type != IS_OBJECT || !Z_OBJ_HT_P(container)->read_property) {
- zend_error(E_NOTICE, "Trying to get property of non-object");
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Trying to get property of non-object");
+ }
*retval = EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(*retval, &opline->result);
AI_USE_PTR(EX_T(opline->result.u.var).var);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...