summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EXTENSIONS5
-rw-r--r--ext/wddx/CREDITS2
-rw-r--r--ext/wddx/config.m468
-rw-r--r--ext/wddx/config.w3223
-rw-r--r--ext/wddx/php_wddx.h45
-rw-r--r--ext/wddx/php_wddx_api.h65
-rw-r--r--ext/wddx/tests/001-64bit.phpt63
-rw-r--r--ext/wddx/tests/001.phpt63
-rw-r--r--ext/wddx/tests/002.phpt26
-rw-r--r--ext/wddx/tests/003.phpt27
-rw-r--r--ext/wddx/tests/004.phpt63
-rw-r--r--ext/wddx/tests/005.phpt74
-rw-r--r--ext/wddx/tests/bug27287.phpt23
-rw-r--r--ext/wddx/tests/bug34306.phpt15
-rw-r--r--ext/wddx/tests/bug35410.phpt77
-rw-r--r--ext/wddx/tests/bug35410_64bit.phpt77
-rw-r--r--ext/wddx/tests/bug37569.phpt786
-rw-r--r--ext/wddx/tests/bug37587.phpt35
-rw-r--r--ext/wddx/tests/bug41283.phpt30
-rw-r--r--ext/wddx/tests/bug41527.phpt25
-rw-r--r--ext/wddx/tests/bug45901.phpt21
-rw-r--r--ext/wddx/tests/bug48562.phpt38
-rw-r--r--ext/wddx/tests/bug52468.phpt29
-rw-r--r--ext/wddx/tests/bug68996.phpt15
-rw-r--r--ext/wddx/tests/bug70661.phpt70
-rw-r--r--ext/wddx/tests/bug70741.phpt26
-rw-r--r--ext/wddx/tests/bug71335.phpt34
-rw-r--r--ext/wddx/tests/bug71587.phpt44
-rw-r--r--ext/wddx/tests/bug72142.phpt18
-rw-r--r--ext/wddx/tests/bug72340.phpt25
-rw-r--r--ext/wddx/tests/bug72564.phpt31
-rw-r--r--ext/wddx/tests/bug72749.phpt35
-rw-r--r--ext/wddx/tests/bug72750.phpt35
-rw-r--r--ext/wddx/tests/bug72790.phpt36
-rw-r--r--ext/wddx/tests/bug72799.phpt29
-rw-r--r--ext/wddx/tests/bug72860.phpt28
-rw-r--r--ext/wddx/tests/bug73065.phpt107
-rw-r--r--ext/wddx/tests/bug73173.phpt26
-rw-r--r--ext/wddx/tests/bug73331.phpt15
-rw-r--r--ext/wddx/tests/bug73631.phpt21
-rw-r--r--ext/wddx/tests/bug73793.phpt19
-rw-r--r--ext/wddx/tests/bug73831.phpt25
-rw-r--r--ext/wddx/tests/bug74145.phpt17
-rw-r--r--ext/wddx/tests/bug74145.xml9
-rw-r--r--ext/wddx/tests/bug75055.phpt22
-rw-r--r--ext/wddx/tests/bug75055.wddx13
-rw-r--r--ext/wddx/tests/wddx.xml60
-rw-r--r--ext/wddx/wddx.c1330
-rw-r--r--main/internal_functions_win32.c6
49 files changed, 0 insertions, 3776 deletions
diff --git a/EXTENSIONS b/EXTENSIONS
index 6fe7d7de52..905402aa03 100644
--- a/EXTENSIONS
+++ b/EXTENSIONS
@@ -201,11 +201,6 @@ PRIMARY MAINTAINER: Dmitry Stogov <dmitry@php.net> (2004 - 2018)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
-EXTENSION: wddx
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net> (1999 - 2003)
-MAINTENANCE: Orphaned
-STATUS: Working
--------------------------------------------------------------------------------
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net> (1999 - 2002)
Rob Richards <rrichards@php.net> (2003 - 2013)
diff --git a/ext/wddx/CREDITS b/ext/wddx/CREDITS
deleted file mode 100644
index 4c98513048..0000000000
--- a/ext/wddx/CREDITS
+++ /dev/null
@@ -1,2 +0,0 @@
-WDDX
-Andrei Zmievski
diff --git a/ext/wddx/config.m4 b/ext/wddx/config.m4
deleted file mode 100644
index 548009ec14..0000000000
--- a/ext/wddx/config.m4
+++ /dev/null
@@ -1,68 +0,0 @@
-dnl config.m4 for extension wddx
-
-PHP_ARG_ENABLE([wddx],
- [whether to enable WDDX support],
- [AS_HELP_STRING([--enable-wddx],
- [Enable WDDX support])])
-
-if test -z "$PHP_LIBXML_DIR"; then
- PHP_ARG_WITH([libxml-dir],
- [libxml2 install dir],
- [AS_HELP_STRING([--with-libxml-dir=DIR],
- [WDDX: libxml2 install prefix])],
- [no],
- [no])
-fi
-
-PHP_ARG_WITH([libexpat-dir],
- [libexpat dir for WDDX],
- [AS_HELP_STRING([--with-libexpat-dir=DIR],
- [WDDX: libexpat dir for XMLRPC-EPI (deprecated)])],
- [no],
- [no])
-
-if test "$PHP_WDDX" != "no"; then
-
- dnl
- dnl Default to libxml2 if --with-libexpat-dir is not used
- dnl
- if test "$PHP_LIBEXPAT_DIR" = "no"; then
- if test "$PHP_LIBXML" = "no"; then
- AC_MSG_ERROR([WDDX extension requires LIBXML extension, add --enable-libxml])
- fi
-
- PHP_SETUP_LIBXML(WDDX_SHARED_LIBADD, [
- if test "$PHP_XML" = "no"; then
- PHP_ADD_SOURCES(ext/xml, compat.c)
- PHP_ADD_BUILD_DIR(ext/xml)
- fi
- ], [
- AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=<DIR>])
- ])
- fi
-
- dnl
- dnl Check for expat only if --with-libexpat-dir is used.
- dnl
- if test "$PHP_LIBEXPAT_DIR" != "no"; then
- for i in $PHP_XML $PHP_LIBEXPAT_DIR /usr /usr/local; do
- if test -f "$i/$PHP_LIBDIR/libexpat.a" || test -f "$i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME"; then
- EXPAT_DIR=$i
- break
- fi
- done
-
- if test -z "$EXPAT_DIR"; then
- AC_MSG_ERROR([not found. Please reinstall the expat distribution.])
- fi
-
- PHP_ADD_INCLUDE($EXPAT_DIR/include)
- PHP_ADD_LIBRARY_WITH_PATH(expat, $EXPAT_DIR/$PHP_LIBDIR, WDDX_SHARED_LIBADD)
- AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
- fi
-
- AC_DEFINE(HAVE_WDDX, 1, [ ])
- PHP_NEW_EXTENSION(wddx, wddx.c, $ext_shared)
- PHP_ADD_EXTENSION_DEP(wddx, libxml)
- PHP_SUBST(XMLRPC_SHARED_LIBADD)
-fi
diff --git a/ext/wddx/config.w32 b/ext/wddx/config.w32
deleted file mode 100644
index d5d4e80e5e..0000000000
--- a/ext/wddx/config.w32
+++ /dev/null
@@ -1,23 +0,0 @@
-// vim:ft=javascript
-
-ARG_WITH("wddx", "WDDX support", "yes");
-
-if (PHP_WDDX == "yes" &&
- PHP_LIBXML == "yes" &&
- CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_WDDX", PHP_PHP_BUILD + "\\include\\libxml2")
-) {
- EXTENSION("wddx", "wddx.c");
- AC_DEFINE("HAVE_WDDX", 1, "WDDX support");
-
- if (!PHP_WDDX_SHARED) {
- ADD_FLAG("CFLAGS_WDDX", "/D LIBXML_STATIC");
- } else {
- if (!CHECK_LIB("libxml2.lib", "wddx")) {
- WARNING("wddx support can't be enabled, libxml is not found")
- }
- }
-
- ADD_EXTENSION_DEP('wddx', 'libxml');
- ADD_EXTENSION_DEP('wddx', 'xml')
- CHECK_HEADER_ADD_INCLUDE("timelib_config.h", "CFLAGS_WDDX", "ext/date/lib");
-}
diff --git a/ext/wddx/php_wddx.h b/ext/wddx/php_wddx.h
deleted file mode 100644
index 457c50af2d..0000000000
--- a/ext/wddx/php_wddx.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
- | Copyright (c) The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Andrei Zmievski <andrei@php.net> |
- +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_WDDX_H
-#define PHP_WDDX_H
-
-#if HAVE_WDDX
-
-extern zend_module_entry wddx_module_entry;
-#define wddx_module_ptr &wddx_module_entry
-
-#include "php_version.h"
-#define PHP_WDDX_VERSION PHP_VERSION
-
-PHP_FUNCTION(wddx_serialize_value);
-PHP_FUNCTION(wddx_serialize_vars);
-PHP_FUNCTION(wddx_packet_start);
-PHP_FUNCTION(wddx_packet_end);
-PHP_FUNCTION(wddx_add_vars);
-PHP_FUNCTION(wddx_deserialize);
-
-#else
-
-#define wddx_module_ptr NULL
-
-#endif /* HAVE_WDDX */
-
-#define phpext_wddx_ptr wddx_module_ptr
-
-#endif /* !PHP_WDDX_H */
diff --git a/ext/wddx/php_wddx_api.h b/ext/wddx/php_wddx_api.h
deleted file mode 100644
index d980d7f645..0000000000
--- a/ext/wddx/php_wddx_api.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
- | Copyright (c) The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Andrei Zmievski <andrei@ispi.net> |
- +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_WDDX_API_H
-#define PHP_WDDX_API_H
-
-#include "zend_smart_str_public.h"
-
-#define WDDX_ARRAY_S "<array length='%d'>"
-#define WDDX_ARRAY_E "</array>"
-#define WDDX_BINARY_S "<binary>"
-#define WDDX_BINARY_E "</binary>"
-#define WDDX_BOOLEAN_TRUE "<boolean value='true'/>"
-#define WDDX_BOOLEAN_FALSE "<boolean value='false'/>"
-#define WDDX_CHAR "<char code='%02X'/>"
-#define WDDX_COMMENT_S "<comment>"
-#define WDDX_COMMENT_E "</comment>"
-#define WDDX_DATA_S "<data>"
-#define WDDX_DATA_E "</data>"
-#define WDDX_HEADER "<header/>"
-#define WDDX_HEADER_S "<header>"
-#define WDDX_HEADER_E "</header>"
-#define WDDX_NULL "<null/>"
-#define WDDX_NUMBER "<number>%s</number>"
-#define WDDX_PACKET_S "<wddxPacket version='1.0'>"
-#define WDDX_PACKET_E "</wddxPacket>"
-#define WDDX_STRING_S "<string>"
-#define WDDX_STRING_E "</string>"
-#define WDDX_STRUCT_S "<struct>"
-#define WDDX_STRUCT_E "</struct>"
-#define WDDX_VAR_S "<var name='%s'>"
-#define WDDX_VAR_E "</var>"
-
-#define php_wddx_add_chunk(packet, str) smart_str_appends(packet, str)
-#define php_wddx_add_chunk_ex(packet, str, len) smart_str_appendl(packet, str, len)
-#define php_wddx_add_chunk_static(packet, str) smart_str_appendl(packet, str, sizeof(str)-1)
-
-typedef smart_str wddx_packet;
-
-wddx_packet* php_wddx_constructor(void);
-void php_wddx_destructor(wddx_packet *packet);
-
-void php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment_len);
-void php_wddx_packet_end(wddx_packet *packet);
-
-void php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name);
-int php_wddx_deserialize_ex(const char *, size_t, zval *return_value);
-#define php_wddx_gather(packet) estrndup(packet->c, packet->len)
-
-#endif /* PHP_WDDX_API_H */
diff --git a/ext/wddx/tests/001-64bit.phpt b/ext/wddx/tests/001-64bit.phpt
deleted file mode 100644
index c0cd49c835..0000000000
--- a/ext/wddx/tests/001-64bit.phpt
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx deserialization test (64-bit)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
-<?php echo PHP_INT_SIZE != 8 ? "skip 64-bit only" : "OK" ?>
---INI--
-precision=14
---FILE--
-<?php
- $path = __DIR__;
- var_dump(wddx_deserialize(file_get_contents("{$path}/wddx.xml")));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(11) {
- ["aNull"]=>
- NULL
- ["aString"]=>
- string(8) "a string"
- ["aNumber"]=>
- float(-12.456)
- ["aDateTime"]=>
- int(897625932)
- ["aDateTime2"]=>
- int(329632332)
- ["aDateTime3"]=>
- int(2223088332)
- ["aBoolean"]=>
- bool(true)
- ["anArray"]=>
- array(2) {
- [0]=>
- int(10)
- [1]=>
- string(14) "second element"
- }
- ["aBinary"]=>
- string(11) "binary data"
- ["anObject"]=>
- array(2) {
- ["s"]=>
- string(8) "a string"
- ["n"]=>
- float(-12.456)
- }
- ["aRecordset"]=>
- array(2) {
- ["NAME"]=>
- array(2) {
- [0]=>
- string(8) "John Doe"
- [1]=>
- string(8) "Jane Doe"
- }
- ["AGE"]=>
- array(2) {
- [0]=>
- int(34)
- [1]=>
- int(31)
- }
- }
-}
diff --git a/ext/wddx/tests/001.phpt b/ext/wddx/tests/001.phpt
deleted file mode 100644
index a38d7d12cb..0000000000
--- a/ext/wddx/tests/001.phpt
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx deserialization test (32-bit)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
-<?php echo PHP_INT_SIZE == 8 ? "skip 32-bit only" : "OK" ?>
---INI--
-precision=14
---FILE--
-<?php
- $path = __DIR__;
- var_dump(wddx_deserialize(file_get_contents("{$path}/wddx.xml")));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(11) {
- ["aNull"]=>
- NULL
- ["aString"]=>
- string(8) "a string"
- ["aNumber"]=>
- float(-12.456)
- ["aDateTime"]=>
- int(897625932)
- ["aDateTime2"]=>
- int(329632332)
- ["aDateTime3"]=>
- string(22) "2040-06-12T04:32:12+00"
- ["aBoolean"]=>
- bool(true)
- ["anArray"]=>
- array(2) {
- [0]=>
- int(10)
- [1]=>
- string(14) "second element"
- }
- ["aBinary"]=>
- string(11) "binary data"
- ["anObject"]=>
- array(2) {
- ["s"]=>
- string(8) "a string"
- ["n"]=>
- float(-12.456)
- }
- ["aRecordset"]=>
- array(2) {
- ["NAME"]=>
- array(2) {
- [0]=>
- string(8) "John Doe"
- [1]=>
- string(8) "Jane Doe"
- }
- ["AGE"]=>
- array(2) {
- [0]=>
- int(34)
- [1]=>
- int(31)
- }
- }
-}
diff --git a/ext/wddx/tests/002.phpt b/ext/wddx/tests/002.phpt
deleted file mode 100644
index 1783cbea7b..0000000000
--- a/ext/wddx/tests/002.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-wddx packet construction using wddx ressource
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-precision=14
---FILE--
-<?php
- $pkt = wddx_packet_start('TEST comment');
-
- $var1 = NULL;
- $var2 = 'some string';
- $var3 = 756;
- $var4 = true;
-
- // add vars to packet
- wddx_add_vars($pkt, 'var1', 'var2', array('var3', 'var4'));
- echo wddx_packet_end($pkt);
-?>
---EXPECTF--
-Deprecated: Function wddx_packet_start() is deprecated in %s on line %d
-
-Deprecated: Function wddx_add_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_packet_end() is deprecated in %s on line %d
-<wddxPacket version='1.0'><header><comment>TEST comment</comment></header><data><struct><var name='var1'><null/></var><var name='var2'><string>some string</string></var><var name='var3'><number>756</number></var><var name='var4'><boolean value='true'/></var></struct></data></wddxPacket>
diff --git a/ext/wddx/tests/003.phpt b/ext/wddx/tests/003.phpt
deleted file mode 100644
index b9155b1ae1..0000000000
--- a/ext/wddx/tests/003.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-wddx deserialize from ressource
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-precision=14
---FILE--
-<?php
- $path = __DIR__;
- $fp = fopen("php://temp", 'w+');
- fputs($fp, "<wddxPacket version='1.0'><header><comment>TEST comment</comment></header><data><struct><var name='var1'><null/></var><var name='var2'><string>some string</string></var><var name='var3'><number>756</number></var><var name='var4'><boolean value='true'/></var></struct></data></wddxPacket>");
- rewind($fp);
- var_dump(wddx_deserialize($fp));
- fclose($fp);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(4) {
- ["var1"]=>
- NULL
- ["var2"]=>
- string(11) "some string"
- ["var3"]=>
- int(756)
- ["var4"]=>
- bool(true)
-}
diff --git a/ext/wddx/tests/004.phpt b/ext/wddx/tests/004.phpt
deleted file mode 100644
index ae5a6b4bd5..0000000000
--- a/ext/wddx/tests/004.phpt
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx session serializer handler (serialize)
---SKIPIF--
-<?php
- if (!extension_loaded("wddx")) die("skip Wddx module not loaded");
- if (!extension_loaded('session')) die('skip Session module not enabled');
-
- // following test code stolen from ext/session/skipif.inc
- $save_path = ini_get("session.save_path");
- if ($save_path) {
- if (!file_exists($save_path)) {
- die("skip Session save_path doesn't exist");
- }
-
- if ($save_path && !@is_writable($save_path)) {
- if (($p = strpos($save_path, ';')) !== false) {
- $save_path = substr($save_path, ++$p);
- }
- if (!@is_writable($save_path)) {
- die("skip\n");
- }
- }
- }
-?>
---INI--
-precision=14
-session.serialize_handler=wddx
-session.use_cookies=0
-session.cache_limiter=
-session.save_handler=files
---FILE--
-<?php
- class foo {
- public $bar = "ok";
- public $invisible = 'you don\'t see me!';
-
- function method() { $this->yes = "done"; }
-
- public function __sleep() { return array('bar', 'yes'); }
- }
-
- session_start();
-
- $_SESSION['data'] = array(
- 'test1' => true,
- 'test2' => 'some string',
- 'test3' => 654321,
- 'test4' => array(
- 'some string',
- true,
- null
- ),
- );
-
- $_SESSION['class'] = new foo();
- $_SESSION['class']->method();
-
- var_dump(session_encode());
-
- session_destroy();
-?>
---EXPECT--
-string(550) "<wddxPacket version='1.0'><header/><data><struct><var name='data'><struct><var name='test1'><boolean value='true'/></var><var name='test2'><string>some string</string></var><var name='test3'><number>654321</number></var><var name='test4'><array length='3'><string>some string</string><boolean value='true'/><null/></array></var></struct></var><var name='class'><struct><var name='php_class_name'><string>foo</string></var><var name='bar'><string>ok</string></var><var name='yes'><string>done</string></var></struct></var></struct></data></wddxPacket>"
diff --git a/ext/wddx/tests/005.phpt b/ext/wddx/tests/005.phpt
deleted file mode 100644
index 99e7a9e31f..0000000000
--- a/ext/wddx/tests/005.phpt
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-wddx session serializer handler (deserialize)
---SKIPIF--
-<?php
- if (!extension_loaded("wddx")) die("skip Wddx module not loaded");
- if (!extension_loaded('session')) die('skip Session module not enabled');
-
- // following test code stolen from ext/session/skipif.inc
- $save_path = ini_get("session.save_path");
- if ($save_path) {
- if (!file_exists($save_path)) {
- die("skip Session save_path doesn't exist");
- }
-
- if ($save_path && !@is_writable($save_path)) {
- if (($p = strpos($save_path, ';')) !== false) {
- $save_path = substr($save_path, ++$p);
- }
- if (!@is_writable($save_path)) {
- die("skip\n");
- }
- }
- }
-?>
---INI--
-precision=14
-session.serialize_handler=wddx
-session.use_cookies=0
-session.cache_limiter=
-session.save_handler=files
---FILE--
-<?php
- class foo {
- public $bar = "ok";
-
- function method() { $this->yes = "done"; }
- }
-
- session_start();
-
- session_decode("<wddxPacket version='1.0'><header/><data><struct><var name='data'><struct><var name='test1'><boolean value='true'/></var><var name='test2'><string>some string</string></var><var name='test3'><number>654321</number></var><var name='test4'><array length='3'><string>some string</string><boolean value='true'/><null/></array></var></struct></var><var name='class'><struct><var name='php_class_name'><string>foo</string></var><var name='bar'><string>ok</string></var><var name='yes'><string>done</string></var></struct></var></struct></data></wddxPacket>");
-
- var_dump($_SESSION);
-
- session_destroy();
-?>
---EXPECT--
-array(2) {
- ["data"]=>
- array(4) {
- ["test1"]=>
- bool(true)
- ["test2"]=>
- string(11) "some string"
- ["test3"]=>
- int(654321)
- ["test4"]=>
- array(3) {
- [0]=>
- string(11) "some string"
- [1]=>
- bool(true)
- [2]=>
- NULL
- }
- }
- ["class"]=>
- object(foo)#1 (2) {
- ["bar"]=>
- string(2) "ok"
- ["yes"]=>
- string(4) "done"
- }
-}
diff --git a/ext/wddx/tests/bug27287.phpt b/ext/wddx/tests/bug27287.phpt
deleted file mode 100644
index 823aa10f3d..0000000000
--- a/ext/wddx/tests/bug27287.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-Bug #27287 (segfault with deserializing object data)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
- class foo {
- }
- $foo = new foo();
- $foo->abc = 'def';
-
- $string = wddx_serialize_value($foo);
- $bar = wddx_deserialize($string);
-
- echo "OK\n";
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-OK
diff --git a/ext/wddx/tests/bug34306.phpt b/ext/wddx/tests/bug34306.phpt
deleted file mode 100644
index a7247d5c07..0000000000
--- a/ext/wddx/tests/bug34306.phpt
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-#34306 (wddx_serialize_value() crashes with long array keys)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$var = array('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890b12345678901234567891234567890123123121231211111' => 1);
-$buf = wddx_serialize_value($var, 'name');
-echo "OK\n";
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-OK
diff --git a/ext/wddx/tests/bug35410.phpt b/ext/wddx/tests/bug35410.phpt
deleted file mode 100644
index 2100c8a38e..0000000000
--- a/ext/wddx/tests/bug35410.phpt
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-#35410 (wddx_deserialize() doesn't handle large ints as keys properly)
---SKIPIF--
-<?php
- if (!extension_loaded("wddx")) print "skip";
- if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
-?>
---FILE--
-<?php
-$wddx = <<<WDX
-<wddxpacket version="1.0">
-<header>
-<comment>Content Configuration File</comment>
-</header>
-<data>
-<struct>
-<var name="content_queries">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="113301888545229100">
-<struct>
-<var name="max">
-<number>10</number>
-</var>
-<var name="cache">
-<number>4</number>
-</var>
-<var name="order">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="CMS_BUILD">
-<string>desc</string>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</data>
-</wddxpacket>
-WDX;
-
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["content_queries"]=>
- array(1) {
- ["content_113300831086270200"]=>
- array(1) {
- ["113301888545229100"]=>
- array(3) {
- ["max"]=>
- int(10)
- ["cache"]=>
- int(4)
- ["order"]=>
- array(1) {
- ["content_113300831086270200"]=>
- array(1) {
- ["CMS_BUILD"]=>
- string(4) "desc"
- }
- }
- }
- }
- }
-}
diff --git a/ext/wddx/tests/bug35410_64bit.phpt b/ext/wddx/tests/bug35410_64bit.phpt
deleted file mode 100644
index ffe4e08188..0000000000
--- a/ext/wddx/tests/bug35410_64bit.phpt
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-#35410 (wddx_deserialize() doesn't handle large ints as keys properly)
---SKIPIF--
-<?php
- if (!extension_loaded("wddx")) print "skip";
- if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
-?>
---FILE--
-<?php
-$wddx = <<<WDX
-<wddxpacket version="1.0">
-<header>
-<comment>Content Configuration File</comment>
-</header>
-<data>
-<struct>
-<var name="content_queries">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="113301888545229100">
-<struct>
-<var name="max">
-<number>10</number>
-</var>
-<var name="cache">
-<number>4</number>
-</var>
-<var name="order">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="CMS_BUILD">
-<string>desc</string>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</data>
-</wddxpacket>
-WDX;
-
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["content_queries"]=>
- array(1) {
- ["content_113300831086270200"]=>
- array(1) {
- [113301888545229100]=>
- array(3) {
- ["max"]=>
- int(10)
- ["cache"]=>
- int(4)
- ["order"]=>
- array(1) {
- ["content_113300831086270200"]=>
- array(1) {
- ["CMS_BUILD"]=>
- string(4) "desc"
- }
- }
- }
- }
- }
-}
diff --git a/ext/wddx/tests/bug37569.phpt b/ext/wddx/tests/bug37569.phpt
deleted file mode 100644
index 7099f9669a..0000000000
--- a/ext/wddx/tests/bug37569.phpt
+++ /dev/null
@@ -1,786 +0,0 @@
---TEST--
-Bug #37569 (WDDX incorrectly encodes high-ascii characters)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-error_reporting=E_ALL & ~E_DEPRECATED
---FILE--
-<?php
-for ($i = 65; $i < 256; $i++) {
- if ($i >= 0xc0) {
- $v = chr(0xc3) . chr($i - 64);
- } elseif ($i >= 0x80) {
- $v = chr(0xc2) . chr($i);
- } else {
- $v = chr($i); // make it UTF-8
- }
- $ret = wddx_serialize_value($v);
- echo $ret . "\n";
- var_dump(bin2hex($v), bin2hex(wddx_deserialize($ret)), $v == wddx_deserialize($ret));
-}
-?>
---EXPECT--
-<wddxPacket version='1.0'><header/><data><string>A</string></data></wddxPacket>
-string(2) "41"
-string(2) "41"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>B</string></data></wddxPacket>
-string(2) "42"
-string(2) "42"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>C</string></data></wddxPacket>
-string(2) "43"
-string(2) "43"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>D</string></data></wddxPacket>
-string(2) "44"
-string(2) "44"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>E</string></data></wddxPacket>
-string(2) "45"
-string(2) "45"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>F</string></data></wddxPacket>
-string(2) "46"
-string(2) "46"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>G</string></data></wddxPacket>
-string(2) "47"
-string(2) "47"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>H</string></data></wddxPacket>
-string(2) "48"
-string(2) "48"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>I</string></data></wddxPacket>
-string(2) "49"
-string(2) "49"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>J</string></data></wddxPacket>
-string(2) "4a"
-string(2) "4a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>K</string></data></wddxPacket>
-string(2) "4b"
-string(2) "4b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>L</string></data></wddxPacket>
-string(2) "4c"
-string(2) "4c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>M</string></data></wddxPacket>
-string(2) "4d"
-string(2) "4d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>N</string></data></wddxPacket>
-string(2) "4e"
-string(2) "4e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>O</string></data></wddxPacket>
-string(2) "4f"
-string(2) "4f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>P</string></data></wddxPacket>
-string(2) "50"
-string(2) "50"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Q</string></data></wddxPacket>
-string(2) "51"
-string(2) "51"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>R</string></data></wddxPacket>
-string(2) "52"
-string(2) "52"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>S</string></data></wddxPacket>
-string(2) "53"
-string(2) "53"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>T</string></data></wddxPacket>
-string(2) "54"
-string(2) "54"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>U</string></data></wddxPacket>
-string(2) "55"
-string(2) "55"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>V</string></data></wddxPacket>
-string(2) "56"
-string(2) "56"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>W</string></data></wddxPacket>
-string(2) "57"
-string(2) "57"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>X</string></data></wddxPacket>
-string(2) "58"
-string(2) "58"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Y</string></data></wddxPacket>
-string(2) "59"
-string(2) "59"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Z</string></data></wddxPacket>
-string(2) "5a"
-string(2) "5a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>[</string></data></wddxPacket>
-string(2) "5b"
-string(2) "5b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\</string></data></wddxPacket>
-string(2) "5c"
-string(2) "5c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>]</string></data></wddxPacket>
-string(2) "5d"
-string(2) "5d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>^</string></data></wddxPacket>
-string(2) "5e"
-string(2) "5e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>_</string></data></wddxPacket>
-string(2) "5f"
-string(2) "5f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>`</string></data></wddxPacket>
-string(2) "60"
-string(2) "60"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>a</string></data></wddxPacket>
-string(2) "61"
-string(2) "61"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>b</string></data></wddxPacket>
-string(2) "62"
-string(2) "62"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>c</string></data></wddxPacket>
-string(2) "63"
-string(2) "63"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>d</string></data></wddxPacket>
-string(2) "64"
-string(2) "64"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>e</string></data></wddxPacket>
-string(2) "65"
-string(2) "65"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>f</string></data></wddxPacket>
-string(2) "66"
-string(2) "66"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>g</string></data></wddxPacket>
-string(2) "67"
-string(2) "67"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>h</string></data></wddxPacket>
-string(2) "68"
-string(2) "68"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>i</string></data></wddxPacket>
-string(2) "69"
-string(2) "69"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>j</string></data></wddxPacket>
-string(2) "6a"
-string(2) "6a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>k</string></data></wddxPacket>
-string(2) "6b"
-string(2) "6b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>l</string></data></wddxPacket>
-string(2) "6c"
-string(2) "6c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>m</string></data></wddxPacket>
-string(2) "6d"
-string(2) "6d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>n</string></data></wddxPacket>
-string(2) "6e"
-string(2) "6e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>o</string></data></wddxPacket>
-string(2) "6f"
-string(2) "6f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>p</string></data></wddxPacket>
-string(2) "70"
-string(2) "70"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>q</string></data></wddxPacket>
-string(2) "71"
-string(2) "71"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>r</string></data></wddxPacket>
-string(2) "72"
-string(2) "72"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>s</string></data></wddxPacket>
-string(2) "73"
-string(2) "73"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>t</string></data></wddxPacket>
-string(2) "74"
-string(2) "74"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>u</string></data></wddxPacket>
-string(2) "75"
-string(2) "75"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>v</string></data></wddxPacket>
-string(2) "76"
-string(2) "76"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>w</string></data></wddxPacket>
-string(2) "77"
-string(2) "77"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>x</string></data></wddxPacket>
-string(2) "78"
-string(2) "78"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>y</string></data></wddxPacket>
-string(2) "79"
-string(2) "79"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>z</string></data></wddxPacket>
-string(2) "7a"
-string(2) "7a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>{</string></data></wddxPacket>
-string(2) "7b"
-string(2) "7b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>|</string></data></wddxPacket>
-string(2) "7c"
-string(2) "7c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>}</string></data></wddxPacket>
-string(2) "7d"
-string(2) "7d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>~</string></data></wddxPacket>
-string(2) "7e"
-string(2) "7e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string></string></data></wddxPacket>
-string(2) "7f"
-string(2) "7f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>€</string></data></wddxPacket>
-string(4) "c280"
-string(4) "c280"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c281"
-string(4) "c281"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>‚</string></data></wddxPacket>
-string(4) "c282"
-string(4) "c282"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ƒ</string></data></wddxPacket>
-string(4) "c283"
-string(4) "c283"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>„</string></data></wddxPacket>
-string(4) "c284"
-string(4) "c284"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â…</string></data></wddxPacket>
-string(4) "c285"
-string(4) "c285"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>†</string></data></wddxPacket>
-string(4) "c286"
-string(4) "c286"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>‡</string></data></wddxPacket>
-string(4) "c287"
-string(4) "c287"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ˆ</string></data></wddxPacket>
-string(4) "c288"
-string(4) "c288"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>‰</string></data></wddxPacket>
-string(4) "c289"
-string(4) "c289"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Š</string></data></wddxPacket>
-string(4) "c28a"
-string(4) "c28a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>‹</string></data></wddxPacket>
-string(4) "c28b"
-string(4) "c28b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Œ</string></data></wddxPacket>
-string(4) "c28c"
-string(4) "c28c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c28d"
-string(4) "c28d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ÂŽ</string></data></wddxPacket>
-string(4) "c28e"
-string(4) "c28e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c28f"
-string(4) "c28f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c290"
-string(4) "c290"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>‘</string></data></wddxPacket>
-string(4) "c291"
-string(4) "c291"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â’</string></data></wddxPacket>
-string(4) "c292"
-string(4) "c292"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>“</string></data></wddxPacket>
-string(4) "c293"
-string(4) "c293"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>”</string></data></wddxPacket>
-string(4) "c294"
-string(4) "c294"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>•</string></data></wddxPacket>
-string(4) "c295"
-string(4) "c295"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>–</string></data></wddxPacket>
-string(4) "c296"
-string(4) "c296"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>—</string></data></wddxPacket>
-string(4) "c297"
-string(4) "c297"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>˜</string></data></wddxPacket>
-string(4) "c298"
-string(4) "c298"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>™</string></data></wddxPacket>
-string(4) "c299"
-string(4) "c299"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>š</string></data></wddxPacket>
-string(4) "c29a"
-string(4) "c29a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>›</string></data></wddxPacket>
-string(4) "c29b"
-string(4) "c29b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>œ</string></data></wddxPacket>
-string(4) "c29c"
-string(4) "c29c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c29d"
-string(4) "c29d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ž</string></data></wddxPacket>
-string(4) "c29e"
-string(4) "c29e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ÿ</string></data></wddxPacket>
-string(4) "c29f"
-string(4) "c29f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string> </string></data></wddxPacket>
-string(4) "c2a0"
-string(4) "c2a0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¡</string></data></wddxPacket>
-string(4) "c2a1"
-string(4) "c2a1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¢</string></data></wddxPacket>
-string(4) "c2a2"
-string(4) "c2a2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>£</string></data></wddxPacket>
-string(4) "c2a3"
-string(4) "c2a3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¤</string></data></wddxPacket>
-string(4) "c2a4"
-string(4) "c2a4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â¥</string></data></wddxPacket>
-string(4) "c2a5"
-string(4) "c2a5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¦</string></data></wddxPacket>
-string(4) "c2a6"
-string(4) "c2a6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>§</string></data></wddxPacket>
-string(4) "c2a7"
-string(4) "c2a7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¨</string></data></wddxPacket>
-string(4) "c2a8"
-string(4) "c2a8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>©</string></data></wddxPacket>
-string(4) "c2a9"
-string(4) "c2a9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ª</string></data></wddxPacket>
-string(4) "c2aa"
-string(4) "c2aa"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>«</string></data></wddxPacket>
-string(4) "c2ab"
-string(4) "c2ab"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¬</string></data></wddxPacket>
-string(4) "c2ac"
-string(4) "c2ac"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>­</string></data></wddxPacket>
-string(4) "c2ad"
-string(4) "c2ad"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>®</string></data></wddxPacket>
-string(4) "c2ae"
-string(4) "c2ae"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¯</string></data></wddxPacket>
-string(4) "c2af"
-string(4) "c2af"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>°</string></data></wddxPacket>
-string(4) "c2b0"
-string(4) "c2b0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>±</string></data></wddxPacket>
-string(4) "c2b1"
-string(4) "c2b1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>²</string></data></wddxPacket>
-string(4) "c2b2"
-string(4) "c2b2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>³</string></data></wddxPacket>
-string(4) "c2b3"
-string(4) "c2b3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>´</string></data></wddxPacket>
-string(4) "c2b4"
-string(4) "c2b4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>µ</string></data></wddxPacket>
-string(4) "c2b5"
-string(4) "c2b5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¶</string></data></wddxPacket>
-string(4) "c2b6"
-string(4) "c2b6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>·</string></data></wddxPacket>
-string(4) "c2b7"
-string(4) "c2b7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¸</string></data></wddxPacket>
-string(4) "c2b8"
-string(4) "c2b8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¹</string></data></wddxPacket>
-string(4) "c2b9"
-string(4) "c2b9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>º</string></data></wddxPacket>
-string(4) "c2ba"
-string(4) "c2ba"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>»</string></data></wddxPacket>
-string(4) "c2bb"
-string(4) "c2bb"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¼</string></data></wddxPacket>
-string(4) "c2bc"
-string(4) "c2bc"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>½</string></data></wddxPacket>
-string(4) "c2bd"
-string(4) "c2bd"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¾</string></data></wddxPacket>
-string(4) "c2be"
-string(4) "c2be"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¿</string></data></wddxPacket>
-string(4) "c2bf"
-string(4) "c2bf"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>À</string></data></wddxPacket>
-string(4) "c380"
-string(4) "c380"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c381"
-string(4) "c381"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c382"
-string(4) "c382"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c383"
-string(4) "c383"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ä</string></data></wddxPacket>
-string(4) "c384"
-string(4) "c384"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã…</string></data></wddxPacket>
-string(4) "c385"
-string(4) "c385"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Æ</string></data></wddxPacket>
-string(4) "c386"
-string(4) "c386"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ç</string></data></wddxPacket>
-string(4) "c387"
-string(4) "c387"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>È</string></data></wddxPacket>
-string(4) "c388"
-string(4) "c388"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>É</string></data></wddxPacket>
-string(4) "c389"
-string(4) "c389"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ê</string></data></wddxPacket>
-string(4) "c38a"
-string(4) "c38a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ë</string></data></wddxPacket>
-string(4) "c38b"
-string(4) "c38b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ì</string></data></wddxPacket>
-string(4) "c38c"
-string(4) "c38c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c38d"
-string(4) "c38d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ÃŽ</string></data></wddxPacket>
-string(4) "c38e"
-string(4) "c38e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c38f"
-string(4) "c38f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c390"
-string(4) "c390"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ñ</string></data></wddxPacket>
-string(4) "c391"
-string(4) "c391"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã’</string></data></wddxPacket>
-string(4) "c392"
-string(4) "c392"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ó</string></data></wddxPacket>
-string(4) "c393"
-string(4) "c393"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ô</string></data></wddxPacket>
-string(4) "c394"
-string(4) "c394"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Õ</string></data></wddxPacket>
-string(4) "c395"
-string(4) "c395"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ö</string></data></wddxPacket>
-string(4) "c396"
-string(4) "c396"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>×</string></data></wddxPacket>
-string(4) "c397"
-string(4) "c397"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ø</string></data></wddxPacket>
-string(4) "c398"
-string(4) "c398"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ù</string></data></wddxPacket>
-string(4) "c399"
-string(4) "c399"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ú</string></data></wddxPacket>
-string(4) "c39a"
-string(4) "c39a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Û</string></data></wddxPacket>
-string(4) "c39b"
-string(4) "c39b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ü</string></data></wddxPacket>
-string(4) "c39c"
-string(4) "c39c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c39d"
-string(4) "c39d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Þ</string></data></wddxPacket>
-string(4) "c39e"
-string(4) "c39e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ß</string></data></wddxPacket>
-string(4) "c39f"
-string(4) "c39f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>à</string></data></wddxPacket>
-string(4) "c3a0"
-string(4) "c3a0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>á</string></data></wddxPacket>
-string(4) "c3a1"
-string(4) "c3a1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>â</string></data></wddxPacket>
-string(4) "c3a2"
-string(4) "c3a2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ã</string></data></wddxPacket>
-string(4) "c3a3"
-string(4) "c3a3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ä</string></data></wddxPacket>
-string(4) "c3a4"
-string(4) "c3a4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã¥</string></data></wddxPacket>
-string(4) "c3a5"
-string(4) "c3a5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>æ</string></data></wddxPacket>
-string(4) "c3a6"
-string(4) "c3a6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ç</string></data></wddxPacket>
-string(4) "c3a7"
-string(4) "c3a7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>è</string></data></wddxPacket>
-string(4) "c3a8"
-string(4) "c3a8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>é</string></data></wddxPacket>
-string(4) "c3a9"
-string(4) "c3a9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ê</string></data></wddxPacket>
-string(4) "c3aa"
-string(4) "c3aa"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ë</string></data></wddxPacket>
-string(4) "c3ab"
-string(4) "c3ab"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ì</string></data></wddxPacket>
-string(4) "c3ac"
-string(4) "c3ac"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>í</string></data></wddxPacket>
-string(4) "c3ad"
-string(4) "c3ad"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>î</string></data></wddxPacket>
-string(4) "c3ae"
-string(4) "c3ae"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ï</string></data></wddxPacket>
-string(4) "c3af"
-string(4) "c3af"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ð</string></data></wddxPacket>
-string(4) "c3b0"
-string(4) "c3b0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ñ</string></data></wddxPacket>
-string(4) "c3b1"
-string(4) "c3b1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ò</string></data></wddxPacket>
-string(4) "c3b2"
-string(4) "c3b2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ó</string></data></wddxPacket>
-string(4) "c3b3"
-string(4) "c3b3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ô</string></data></wddxPacket>
-string(4) "c3b4"
-string(4) "c3b4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>õ</string></data></wddxPacket>
-string(4) "c3b5"
-string(4) "c3b5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ö</string></data></wddxPacket>
-string(4) "c3b6"
-string(4) "c3b6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>÷</string></data></wddxPacket>
-string(4) "c3b7"
-string(4) "c3b7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ø</string></data></wddxPacket>
-string(4) "c3b8"
-string(4) "c3b8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ù</string></data></wddxPacket>
-string(4) "c3b9"
-string(4) "c3b9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ú</string></data></wddxPacket>
-string(4) "c3ba"
-string(4) "c3ba"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>û</string></data></wddxPacket>
-string(4) "c3bb"
-string(4) "c3bb"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ü</string></data></wddxPacket>
-string(4) "c3bc"
-string(4) "c3bc"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ý</string></data></wddxPacket>
-string(4) "c3bd"
-string(4) "c3bd"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>þ</string></data></wddxPacket>
-string(4) "c3be"
-string(4) "c3be"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ÿ</string></data></wddxPacket>
-string(4) "c3bf"
-string(4) "c3bf"
-bool(true)
diff --git a/ext/wddx/tests/bug37587.phpt b/ext/wddx/tests/bug37587.phpt
deleted file mode 100644
index e91e451238..0000000000
--- a/ext/wddx/tests/bug37587.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #37587 (var without attribute causes segfault)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-var_dump(wddx_deserialize(<<<EOF
-<wddxPacket version='1.0'>
-<header/>
-<data>
- <array length='1'>
- <var>
- <struct>
- <var name='test'><string>Hello World</string></var>
- </struct>
- </var>
- </array>
-</data>
-</wddxPacket>
-EOF
-));
-
-?>
-===DONE===
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- [0]=>
- array(1) {
- ["test"]=>
- string(11) "Hello World"
- }
-}
-===DONE===
diff --git a/ext/wddx/tests/bug41283.phpt b/ext/wddx/tests/bug41283.phpt
deleted file mode 100644
index 4a1f92b991..0000000000
--- a/ext/wddx/tests/bug41283.phpt
+++ /dev/null
@@ -1,30 +0,0 @@
---TEST--
-Bug #41283 (Bug with serializing array key that are doubles or floats)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$data = array(
- 'somearray' => array('1.1' => 'One 1','1.2' => 'One 2', '1.0' => 'Three')
-);
-
-var_dump(wddx_deserialize(wddx_serialize_vars('data')));
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["data"]=>
- array(1) {
- ["somearray"]=>
- array(3) {
- ["1.1"]=>
- string(5) "One 1"
- ["1.2"]=>
- string(5) "One 2"
- ["1.0"]=>
- string(5) "Three"
- }
- }
-}
diff --git a/ext/wddx/tests/bug41527.phpt b/ext/wddx/tests/bug41527.phpt
deleted file mode 100644
index 329f732a19..0000000000
--- a/ext/wddx/tests/bug41527.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #41527 (WDDX deserialize numeric string array keys)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$data = array('01' => 'Zero', '+1' => 'Plus sign', ' 1' => 'Space');
-
-var_dump(wddx_deserialize(wddx_serialize_vars('data')));
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["data"]=>
- array(3) {
- ["01"]=>
- string(4) "Zero"
- ["+1"]=>
- string(9) "Plus sign"
- [" 1"]=>
- string(5) "Space"
- }
-}
diff --git a/ext/wddx/tests/bug45901.phpt b/ext/wddx/tests/bug45901.phpt
deleted file mode 100644
index c89b230eb9..0000000000
--- a/ext/wddx/tests/bug45901.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Bug #45901 (wddx_serialize_value crash with SimpleXMLElement object)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-if (!extension_loaded("simplexml")) print "skip SimpleXML not present";
-?>
---FILE--
-<?php
-
-$xml = new SimpleXMLElement('<data></data>');
-$xml->addChild('test');
-echo wddx_serialize_value($xml, 'Variables') . "\n";
-echo "DONE";
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %sbug45901.php on line %d
-
-Warning: wddx_serialize_value(): Class SimpleXMLElement can not be serialized in %sbug45901.php on line %d
-<wddxPacket version='1.0'><header><comment>Variables</comment></header><data></data></wddxPacket>
-DONE
diff --git a/ext/wddx/tests/bug48562.phpt b/ext/wddx/tests/bug48562.phpt
deleted file mode 100644
index 10a2b65660..0000000000
--- a/ext/wddx/tests/bug48562.phpt
+++ /dev/null
@@ -1,38 +0,0 @@
---TEST--
-Bug #48562 (Reference recursion causes segfault when used in wddx_serialize_vars())
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$foo = 'bar';
-
-$a['x'] = 'foo';
-$a['x'] = &$a;
-
-var_dump(wddx_serialize_vars($a));
-
-// replace $a - the recursion detection seems to be causing $a to be not an array here, maybe its internally a pointer
-// replacing $a with a new array() allows this test to still check for 2 things
-// 1. recursion detection in &$a;
-// 2. recursion detection in adding $a to itself and then serializing $a
-// the one thing the test won't check is using $a as an array after doing &$a; which isn't really a wddx problem.
-$a = array();
-$a['x'] = 'foo';
-$a['x'] = $a;
-
-var_dump(wddx_serialize_vars($a));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Warning: wddx_serialize_vars(): recursion detected in %s on line %d
-string(78) "<wddxPacket version='1.0'><header/><data><struct></struct></data></wddxPacket>"
-
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-string(120) "<wddxPacket version='1.0'><header/><data><struct><var name='foo'><string>bar</string></var></struct></data></wddxPacket>"
diff --git a/ext/wddx/tests/bug52468.phpt b/ext/wddx/tests/bug52468.phpt
deleted file mode 100644
index 1fd3df9e4a..0000000000
--- a/ext/wddx/tests/bug52468.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-Bug #52468 (wddx_deserialize corrupts integer field value when left empty)
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$message = "<wddxPacket version='1.0'><header><comment>my_command</comment></header><data><struct><var name='handle'><number></number></var></struct></data></wddxPacket>";
-
-print_r(wddx_deserialize($message));
-print_r(wddx_deserialize($message));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-Array
-(
- [handle] => 0
-)
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-Array
-(
- [handle] => 0
-)
diff --git a/ext/wddx/tests/bug68996.phpt b/ext/wddx/tests/bug68996.phpt
deleted file mode 100644
index cba4b3f194..0000000000
--- a/ext/wddx/tests/bug68996.phpt
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #68996 (Invalid free of CG(interned_empty_string))
---SKIPIF--
-<?php
-if (getenv("USE_ZEND_ALLOC") !== "0")
- print "skip Need Zend MM disabled";
-?>
---FILE--
-<?php
-echo wddx_serialize_value("\xfc\x63") . "\n";
-echo wddx_serialize_value([ "\xfc\x63" => "foo" ]) . "\n";
-?>
---EXPECT--
-<wddxPacket version='1.0'><header/><data><string></string></data></wddxPacket>
-<wddxPacket version='1.0'><header/><data><struct><var name=''><string>foo</string></var></struct></data></wddxPacket>
diff --git a/ext/wddx/tests/bug70661.phpt b/ext/wddx/tests/bug70661.phpt
deleted file mode 100644
index 60683d5719..0000000000
--- a/ext/wddx/tests/bug70661.phpt
+++ /dev/null
@@ -1,70 +0,0 @@
---TEST--
-Bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$fakezval = ptr2str(1122334455);
-$fakezval .= ptr2str(0);
-$fakezval .= "\x00\x00\x00\x00";
-$fakezval .= "\x01";
-$fakezval .= "\x00";
-$fakezval .= "\x00\x00";
-
-$x = <<<EOT
-<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <recordset rowCount='1' fieldNames='ryat'>
- <field name='ryat'>
- <var name='php_class_name'>
- <string>stdClass</string>
- </var>
- <null/>
- </field>
- </recordset>
- </struct>
- </data>
-</wddxPacket>
-EOT;
-
-$y = wddx_deserialize($x);
-
-for ($i = 0; $i < 5; $i++) {
- $v[$i] = $fakezval.$i;
-}
-
-var_dump($y);
-
-function ptr2str($ptr)
-{
- $out = '';
-
- for ($i = 0; $i < 8; $i++) {
- $out .= chr($ptr & 0xff);
- $ptr >>= 8;
- }
-
- return $out;
-}
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- [0]=>
- array(1) {
- ["ryat"]=>
- array(2) {
- ["php_class_name"]=>
- string(8) "stdClass"
- [0]=>
- NULL
- }
- }
-}
-DONE
diff --git a/ext/wddx/tests/bug70741.phpt b/ext/wddx/tests/bug70741.phpt
deleted file mode 100644
index 061fa65ef8..0000000000
--- a/ext/wddx/tests/bug70741.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-Bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-if (!extension_loaded("session")) print "skip session extension not available";
-?>
---FILE--
-<?php
-ini_set('session.serialize_handler', 'wddx');
-session_start();
-
-$hashtable = str_repeat('A', 66);
-$wddx = "<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <string>$hashtable</string>
- </data>
-</wddxPacket>";
-session_decode($wddx);
-?>
-DONE
---EXPECTF--
-Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s on line %d
-DONE
diff --git a/ext/wddx/tests/bug71335.phpt b/ext/wddx/tests/bug71335.phpt
deleted file mode 100644
index 9fdbb25822..0000000000
--- a/ext/wddx/tests/bug71335.phpt
+++ /dev/null
@@ -1,34 +0,0 @@
---TEST--
-Bug #71335 (Type Confusion in WDDX Packet Deserialization)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$x = "<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <var name='php_class_name'>
- <string>stdClass</string>
- </var>
- <var name='php_class_name'>
- <string>stdClass</string>
- </var>
- </struct>
- </data>
-</wddxPacket>";
-
-$d = wddx_deserialize($x);
-var_dump($d);
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-object(stdClass)#%d (1) {
- ["php_class_name"]=>
- string(8) "stdClass"
-}
-DONE
diff --git a/ext/wddx/tests/bug71587.phpt b/ext/wddx/tests/bug71587.phpt
deleted file mode 100644
index bb7c00b586..0000000000
--- a/ext/wddx/tests/bug71587.phpt
+++ /dev/null
@@ -1,44 +0,0 @@
---TEST--
-Bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-
-$xml = <<<EOF
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
- <array>
- <var name='ML'></var>
- <string>manhluat</string>
- <var name='ML2'></var>
- <boolean value='a'/>
- <boolean value='true'/>
- </array>
-</wddxPacket>
-EOF;
-
-$wddx = wddx_deserialize($xml);
-var_dump($wddx);
-// Print mem leak
-foreach($wddx as $k=>$v)
- printf("Key: %s\nValue: %s\n",bin2hex($k),bin2hex($v));
-
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(2) {
- [0]=>
- string(8) "manhluat"
- [1]=>
- bool(true)
-}
-Key: 30
-Value: 6d616e686c756174
-Key: 31
-Value: 31
-DONE
diff --git a/ext/wddx/tests/bug72142.phpt b/ext/wddx/tests/bug72142.phpt
deleted file mode 100644
index 955af38131..0000000000
--- a/ext/wddx/tests/bug72142.phpt
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Bug #72142: WDDX Packet Injection Vulnerability in wddx_serialize_value()
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$wddx = wddx_serialize_value('', '</comment></header><data><struct><var name="php_class_name"><string>stdClass</string></var></struct></data></wddxPacket>');
-var_dump($wddx);
-var_dump(wddx_deserialize($wddx));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-string(301) "<wddxPacket version='1.0'><header><comment>&lt;/comment&gt;&lt;/header&gt;&lt;data&gt;&lt;struct&gt;&lt;var name=&quot;php_class_name&quot;&gt;&lt;string&gt;stdClass&lt;/string&gt;&lt;/var&gt;&lt;/struct&gt;&lt;/data&gt;&lt;/wddxPacket&gt;</comment></header><data><string></string></data></wddxPacket>"
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(0) ""
diff --git a/ext/wddx/tests/bug72340.phpt b/ext/wddx/tests/bug72340.phpt
deleted file mode 100644
index 7597a2f479..0000000000
--- a/ext/wddx/tests/bug72340.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #72340: Double Free Courruption in wddx_deserialize
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
- <array><var name="XXXXXXXX"><boolean value="none">TEST</boolean></var>
- <var name="YYYYYYYY"><var name="ZZZZZZZZ"><var name="EZEZEZEZ">
- </var></var></var>
- </array>
-</wddxPacket>
-EOF;
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
diff --git a/ext/wddx/tests/bug72564.phpt b/ext/wddx/tests/bug72564.phpt
deleted file mode 100644
index a1037a8662..0000000000
--- a/ext/wddx/tests/bug72564.phpt
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-Bug #72564: wddx deserialization of boolean
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
- foreach([true, false, NULL] as $v) {
- $x = wddx_serialize_value($v);
- var_dump($x, wddx_deserialize($x));
- }
-?>
-Done
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(84) "<wddxPacket version='1.0'><header/><data><boolean value='true'/></data></wddxPacket>"
-bool(true)
-
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(85) "<wddxPacket version='1.0'><header/><data><boolean value='false'/></data></wddxPacket>"
-bool(false)
-
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(68) "<wddxPacket version='1.0'><header/><data><null/></data></wddxPacket>"
-NULL
-Done
diff --git a/ext/wddx/tests/bug72749.phpt b/ext/wddx/tests/bug72749.phpt
deleted file mode 100644
index 49a7af9c73..0000000000
--- a/ext/wddx/tests/bug72749.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #72749: wddx_deserialize allows illegal memory access
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-$xml = <<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <var name='aDateTime3'>
- <dateTime>2\r2004-09-10T05:52:49+00</dateTime>
- </var>
- </struct>
- </data>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["aDateTime3"]=>
- string(24) "2
-2004-09-10T05:52:49+00"
-}
diff --git a/ext/wddx/tests/bug72750.phpt b/ext/wddx/tests/bug72750.phpt
deleted file mode 100644
index a789900a60..0000000000
--- a/ext/wddx/tests/bug72750.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #72750: wddx_deserialize null dereference
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<< XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <var name='aBinary'>
- <binary length='11'>\\tYmluYXJRhdGE=</binary>
- </var>
- </struct>
- </data>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["aBinary"]=>
- string(9) "µ‰¥¹…ÉFF"
-}
diff --git a/ext/wddx/tests/bug72790.phpt b/ext/wddx/tests/bug72790.phpt
deleted file mode 100644
index 335cee0d83..0000000000
--- a/ext/wddx/tests/bug72790.phpt
+++ /dev/null
@@ -1,36 +0,0 @@
---TEST--
-Bug #72790: wddx_deserialize null dereference with invalid xml
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<< XML
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
- |array>
- <var name="XXXX">
- <boolean value="this">
- </boolean>
- </var>
- <var name="YYYY">
- <var name="UUUU">
- <var name="EZEZ">
- </var>
- </var>
- </var>
- </array>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug72799.phpt b/ext/wddx/tests/bug72799.phpt
deleted file mode 100644
index a5fea7a4da..0000000000
--- a/ext/wddx/tests/bug72799.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-Bug #72799: wddx_deserialize null dereference in php_wddx_pop_element
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version="1.0">
- <var name="XXXX">
- <boolean value="1">
- <dateTime>1998-06-12T04:32:12+00</dateTime>
- </boolean>
- </var>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug72860.phpt b/ext/wddx/tests/bug72860.phpt
deleted file mode 100644
index 831811b842..0000000000
--- a/ext/wddx/tests/bug72860.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-Bug #72860: wddx_deserialize use-after-free
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml=<<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
- <recordset fieldNames='F'>
- <field name='F'>
- </recordset>
-</wddxPacket>
-XML;
-
-var_dump(wddx_deserialize($xml));
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
-DONE
diff --git a/ext/wddx/tests/bug73065.phpt b/ext/wddx/tests/bug73065.phpt
deleted file mode 100644
index 5481b88fd6..0000000000
--- a/ext/wddx/tests/bug73065.phpt
+++ /dev/null
@@ -1,107 +0,0 @@
---TEST--
-Bug #73065: Out-Of-Bounds Read in php_wddx_push_element of wddx.c
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
- die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml1 = <<<XML
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <var Name="name">
- <boolean value="keliu"></boolean>
- </var>
- <var name="1111">
- <var name="2222">
- <var name="3333"></var>
- </var>
- </var>
- </array>
- </wddxPacket>
-XML;
-
-$xml2 = <<<XML
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <char Name="code">
- <boolean value="keliu"></boolean>
- </char>
- </array>
- </wddxPacket>
-XML;
-
-$xml3 = <<<XML
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <boolean Name="value">
- <boolean value="keliu"></boolean>
- </boolean>
- </array>
- </wddxPacket>
-XML;
-
-$xml4 = <<<XML
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <recordset Name="fieldNames">
- <boolean value="keliu"></boolean>
- </recordset>
- </array>
- </wddxPacket>
-XML;
-
-$xml5 = <<<XML
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <field Name="name">
- <boolean value="keliu"></boolean>
- </field>
- </array>
- </wddxPacket>
-XML;
-
-for($i=1;$i<=5;$i++) {
- $xmlvar = "xml$i";
- $array = wddx_deserialize($$xmlvar);
- var_dump($array);
-}
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- [0]=>
- array(0) {
- }
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-DONE
diff --git a/ext/wddx/tests/bug73173.phpt b/ext/wddx/tests/bug73173.phpt
deleted file mode 100644
index d9e6644b8b..0000000000
--- a/ext/wddx/tests/bug73173.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-Bug #73173: huge memleak when wddx_unserialize
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$xml=<<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket>
-<var name="
-XML;
-
-$xml .= str_repeat('F',0x80000);
-
-$xml .= <<<XML
-">
-</wddxPacket>
-XML;
-var_dump(wddx_deserialize($xml));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug73331.phpt b/ext/wddx/tests/bug73331.phpt
deleted file mode 100644
index 3ee2e596ef..0000000000
--- a/ext/wddx/tests/bug73331.phpt
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow)
---SKIPIF--
-<?php if (!extension_loaded("wddx") || !extension_loaded("pdo")) print "skip"; ?>
---FILE--
-<?php
-
-$wddx = "<wddxPacket version='1.0'><header/><data><struct><var name='php_class_name'><string>PDORow</string></var></struct></data></wddxPacket>";
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-
-Warning: wddx_deserialize(): Class pdorow can not be unserialized in %s73331.php on line %d
-NULL
diff --git a/ext/wddx/tests/bug73631.phpt b/ext/wddx/tests/bug73631.phpt
deleted file mode 100644
index 061932e732..0000000000
--- a/ext/wddx/tests/bug73631.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Bug #73631 (Memory leak due to invalid wddx stack processing)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
----XFAIL--
-Still has memory leaks in debug build.
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version="1.0" ?>
-<wddxPacket version="1.0">
-<number>1234</number>
-<binary><boolean/></binary>
-</wddxPacket>
-EOF;
-$wddx = wddx_deserialize($xml);
-var_dump($wddx);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-int(1234)
diff --git a/ext/wddx/tests/bug73793.phpt b/ext/wddx/tests/bug73793.phpt
deleted file mode 100644
index dad2f35ed0..0000000000
--- a/ext/wddx/tests/bug73793.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-Bug #73793 (WDDX uses wrong decimal separator)
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) print 'skip wddx extension not available';
-if (setlocale(LC_NUMERIC, ['de_DE', 'de_DE.UTF-8', 'de-DE']) === false) {
- print 'skip German locale not available';
-}
-?>
---FILE--
-<?php
-setlocale(LC_NUMERIC , ['de_DE', 'de_DE.UTF-8', 'de-DE']);
-var_dump(wddx_serialize_value(['foo' => 5.1]));
-?>
-===DONE===
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-string(120) "<wddxPacket version='1.0'><header/><data><struct><var name='foo'><number>5.1</number></var></struct></data></wddxPacket>"
-===DONE===
diff --git a/ext/wddx/tests/bug73831.phpt b/ext/wddx/tests/bug73831.phpt
deleted file mode 100644
index dc25f3c092..0000000000
--- a/ext/wddx/tests/bug73831.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #73831 (NULL Pointer Dereference while unserialize php object)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version="1.0" ?>
-<wddxPacket version="1.0">
- <struct>
- <var name="php_class_name">
- <string>Throwable</string>
- </var>
- </struct>
-</wddxPacket>
-EOF;
-try {
- $wddx = wddx_deserialize($xml);
-} catch(Error $e) { echo $e->getMessage(); }
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-
-Warning: wddx_deserialize(): Class throwable can not be instantiated in %sbug73831.php on line %d
-Cannot instantiate interface Throwable
diff --git a/ext/wddx/tests/bug74145.phpt b/ext/wddx/tests/bug74145.phpt
deleted file mode 100644
index 1daa189acc..0000000000
--- a/ext/wddx/tests/bug74145.phpt
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-Bug #74145 (wddx parsing empty boolean tag leads to SIGSEGV)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$data = file_get_contents(__DIR__ . '/bug74145.xml');
-$wddx = wddx_deserialize($data);
-var_dump($wddx);
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
-DONE
diff --git a/ext/wddx/tests/bug74145.xml b/ext/wddx/tests/bug74145.xml
deleted file mode 100644
index e5d35fb0a4..0000000000
--- a/ext/wddx/tests/bug74145.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version='1.0' ?>
- <!DOCTYPE et SYSTEM 'w'>
- <wddxPacket ven='1.0'>
- <array>
- <var Name="name">
- <boolean ></boolean>
- </var>
- </array>
- </wddxPacket>
diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
deleted file mode 100644
index cd84c9b8fa..0000000000
--- a/ext/wddx/tests/bug75055.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Bug #75055 Out-Of-Bounds Read in timelib_meridian()
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$file_str = __DIR__ . "/bug75055.wddx";
-
-$wddx_str = file_get_contents($file_str);
-print strlen($wddx_str) . " bytes read.\n";
-
-var_dump(wddx_deserialize($wddx_str));
-?>
---EXPECTF--
-323 bytes read.
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
- ["aDateTime"]=>
- string(12) "frONt of 0 0"
-}
diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
deleted file mode 100644
index 6493352469..0000000000
--- a/ext/wddx/tests/bug75055.wddx
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <var name='aDateTime'>
- <dateTime>frONt of 0 0</dateTime>
- </var>
- </struct>
- </data>
-</wddxPacket>
-
diff --git a/ext/wddx/tests/wddx.xml b/ext/wddx/tests/wddx.xml
deleted file mode 100644
index 00857095c9..0000000000
--- a/ext/wddx/tests/wddx.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
- <data>
- <struct>
- <var name='aNull'>
- <null/>
- </var>
- <var name='aString'>
- <string>a string</string>
- </var>
- <var name='aNumber'>
- <number>-12.456</number>
- </var>
- <var name='aDateTime'>
- <dateTime>1998-06-12T04:32:12+00</dateTime>
- </var>
- <var name='aDateTime2'>
- <dateTime>1980-06-12T04:32:12+00</dateTime>
- </var>
- <var name='aDateTime3'>
- <dateTime>2040-06-12T04:32:12+00</dateTime>
- </var>
- <var name='aBoolean'>
- <boolean value='true'/>
- </var>
- <var name='anArray'>
- <array length='2'>
- <number>10</number>
- <string>second element</string>
- </array>
- </var>
- <var name='aBinary'>
- <binary length='11'>YmluYXJ5IGRhdGE=</binary>
- </var>
- <var name='anObject'>
- <struct>
- <var name='s'>
- <string>a string</string>
- </var>
- <var name='n'>
- <number>-12.456</number>
- </var>
- </struct>
- </var>
- <var name='aRecordset'>
- <recordset rowCount='2' fieldNames='NAME,AGE'>
- <field name='NAME'>
- <string>John Doe</string>
- <string>Jane Doe</string>
- </field>
- <field name='AGE'>
- <number>34</number>
- <number>31</number>
- </field>
- </recordset>
- </struct>
- </data>
-</wddxPacket>
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
deleted file mode 100644
index b32623f3d8..0000000000
--- a/ext/wddx/wddx.c
+++ /dev/null
@@ -1,1330 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
- | Copyright (c) The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Andrei Zmievski <andrei@php.net> |
- +----------------------------------------------------------------------+
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-
-#if HAVE_WDDX
-
-#include "ext/xml/expat_compat.h"
-#include "php_wddx.h"
-#include "php_wddx_api.h"
-
-#include "ext/xml/php_xml.h"
-#include "ext/standard/php_incomplete_class.h"
-#include "ext/standard/base64.h"
-#include "ext/standard/info.h"
-#include "zend_smart_str.h"
-#include "ext/standard/html.h"
-#include "ext/standard/php_string.h"
-#include "ext/date/php_date.h"
-#include "zend_globals.h"
-
-#define WDDX_BUF_LEN 256
-#define PHP_CLASS_NAME_VAR "php_class_name"
-
-#define EL_ARRAY "array"
-#define EL_BINARY "binary"
-#define EL_BOOLEAN "boolean"
-#define EL_CHAR "char"
-#define EL_CHAR_CODE "code"
-#define EL_NULL "null"
-#define EL_NUMBER "number"
-#define EL_PACKET "wddxPacket"
-#define EL_STRING "string"
-#define EL_STRUCT "struct"
-#define EL_VALUE "value"
-#define EL_VAR "var"
-#define EL_NAME "name"
-#define EL_VERSION "version"
-#define EL_RECORDSET "recordset"
-#define EL_FIELD "field"
-#define EL_DATETIME "dateTime"
-
-#define php_wddx_deserialize(a,b) \
- php_wddx_deserialize_ex(Z_STRVAL_P(a), Z_STRLEN_P(a), (b))
-
-#define SET_STACK_VARNAME \
- if (stack->varname) { \
- ent.varname = estrdup(stack->varname); \
- efree(stack->varname); \
- stack->varname = NULL; \
- } else \
- ent.varname = NULL; \
-
-static int le_wddx;
-
-typedef struct {
- zval data;
- enum {
- ST_ARRAY,
- ST_BOOLEAN,
- ST_NULL,
- ST_NUMBER,
- ST_STRING,
- ST_BINARY,
- ST_STRUCT,
- ST_RECORDSET,
- ST_FIELD,
- ST_DATETIME
- } type;
- char *varname;
-} st_entry;
-
-typedef struct {
- int top, max;
- char *varname;
- zend_bool done;
- void **elements;
-} wddx_stack;
-
-
-static void php_wddx_process_data(void *user_data, const XML_Char *s, int len);
-
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_value, 0, 0, 1)
- ZEND_ARG_INFO(0, var)
- ZEND_ARG_INFO(0, comment)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_vars, 0, 0, 1)
- ZEND_ARG_VARIADIC_INFO(0, var_names)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_start, 0, 0, 0)
- ZEND_ARG_INFO(0, comment)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_packet_end, 0, 0, 1)
- ZEND_ARG_INFO(0, packet_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_add_vars, 0, 0, 2)
- ZEND_ARG_INFO(0, packet_id)
- ZEND_ARG_VARIADIC_INFO(0, var_names)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_deserialize, 0, 0, 1)
- ZEND_ARG_INFO(0, packet)
-ZEND_END_ARG_INFO()
-/* }}} */
-
-/* {{{ wddx_functions[]
- */
-static const zend_function_entry wddx_functions[] = {
- PHP_DEP_FE(wddx_serialize_value, arginfo_wddx_serialize_value)
- PHP_DEP_FE(wddx_serialize_vars, arginfo_wddx_serialize_vars)
- PHP_DEP_FE(wddx_packet_start, arginfo_wddx_serialize_start)
- PHP_DEP_FE(wddx_packet_end, arginfo_wddx_packet_end)
- PHP_DEP_FE(wddx_add_vars, arginfo_wddx_add_vars)
- PHP_DEP_FE(wddx_deserialize, arginfo_wddx_deserialize)
- PHP_FE_END
-};
-/* }}} */
-
-PHP_MINIT_FUNCTION(wddx);
-PHP_MINFO_FUNCTION(wddx);
-
-/* {{{ dynamically loadable module stuff */
-#ifdef COMPILE_DL_WDDX
-ZEND_GET_MODULE(wddx)
-#endif /* COMPILE_DL_WDDX */
-/* }}} */
-
-/* {{{ wddx_module_entry
- */
-zend_module_entry wddx_module_entry = {
- STANDARD_MODULE_HEADER,
- "wddx",
- wddx_functions,
- PHP_MINIT(wddx),
- NULL,
- NULL,
- NULL,
- PHP_MINFO(wddx),
- PHP_WDDX_VERSION,
- STANDARD_MODULE_PROPERTIES
-};
-/* }}} */
-
-/* {{{ wddx_stack_init
- */
-static int wddx_stack_init(wddx_stack *stack)
-{
- stack->top = 0;
- stack->elements = (void **) safe_emalloc(sizeof(void **), STACK_BLOCK_SIZE, 0);
- stack->max = STACK_BLOCK_SIZE;
- stack->varname = NULL;
- stack->done = 0;
-
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ wddx_stack_push
- */
-static int wddx_stack_push(wddx_stack *stack, void *element, int size)
-{
- if (stack->top >= stack->max) { /* we need to allocate more memory */
- stack->elements = (void **) erealloc(stack->elements,
- (sizeof(void **) * (stack->max += STACK_BLOCK_SIZE)));
- }
- stack->elements[stack->top] = (void *) emalloc(size);
- memcpy(stack->elements[stack->top], element, size);
- return stack->top++;
-}
-/* }}} */
-
-/* {{{ wddx_stack_top
- */
-static int wddx_stack_top(wddx_stack *stack, void **element)
-{
- if (stack->top > 0) {
- *element = stack->elements[stack->top - 1];
- return SUCCESS;
- } else {
- *element = NULL;
- return FAILURE;
- }
-}
-/* }}} */
-
-/* {{{ wddx_stack_is_empty
- */
-static int wddx_stack_is_empty(wddx_stack *stack)
-{
- if (stack->top == 0) {
- return 1;
- } else {
- return 0;
- }
-}
-/* }}} */
-
-/* {{{ wddx_stack_destroy
- */
-static int wddx_stack_destroy(wddx_stack *stack)
-{
- register int i;
-
- if (stack->elements) {
- for (i = 0; i < stack->top; i++) {
- if (Z_TYPE(((st_entry *)stack->elements[i])->data) != IS_UNDEF
- && ((st_entry *)stack->elements[i])->type != ST_FIELD) {
- zval_ptr_dtor(&((st_entry *)stack->elements[i])->data);
- }
- if (((st_entry *)stack->elements[i])->varname) {
- efree(((st_entry *)stack->elements[i])->varname);
- }
- efree(stack->elements[i]);
- }
- efree(stack->elements);
- }
- if (stack->varname) {
- efree(stack->varname);
- }
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ release_wddx_packet_rsrc
- */
-static void release_wddx_packet_rsrc(zend_resource *rsrc)
-{
- smart_str *str = (smart_str *)rsrc->ptr;
- smart_str_free(str);
- efree(str);
-}
-/* }}} */
-
-#include "ext/session/php_session.h"
-
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
-/* {{{ PS_SERIALIZER_ENCODE_FUNC
- */
-PS_SERIALIZER_ENCODE_FUNC(wddx)
-{
- wddx_packet *packet;
- zend_string *str;
- PS_ENCODE_VARS;
-
- packet = php_wddx_constructor();
-
- php_wddx_packet_start(packet, NULL, 0);
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
- PS_ENCODE_LOOP(
- php_wddx_serialize_var(packet, struc, key);
- );
-
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- php_wddx_packet_end(packet);
- smart_str_0(packet);
- str = zend_string_copy(packet->s);
- php_wddx_destructor(packet);
-
- return str;
-}
-/* }}} */
-
-/* {{{ PS_SERIALIZER_DECODE_FUNC
- */
-PS_SERIALIZER_DECODE_FUNC(wddx)
-{
- zval retval;
- zval *ent;
- zend_string *key;
- zend_ulong idx;
- int ret;
-
- if (vallen == 0) {
- return SUCCESS;
- }
-
- ZVAL_UNDEF(&retval);
- if ((ret = php_wddx_deserialize_ex(val, vallen, &retval)) == SUCCESS) {
- if (Z_TYPE(retval) != IS_ARRAY) {
- zval_ptr_dtor_nogc(&retval);
- return FAILURE;
- }
- ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL(retval), idx, key, ent) {
- if (key == NULL) {
- key = zend_long_to_str(idx);
- } else {
- zend_string_addref(key);
- }
- if (php_set_session_var(key, ent, NULL)) {
- Z_TRY_ADDREF_P(ent);
- }
- PS_ADD_VAR(key);
- zend_string_release_ex(key, 0);
- } ZEND_HASH_FOREACH_END();
- }
-
- zval_ptr_dtor(&retval);
-
- return ret;
-}
-/* }}} */
-#endif
-
-/* {{{ PHP_MINIT_FUNCTION
- */
-PHP_MINIT_FUNCTION(wddx)
-{
- le_wddx = zend_register_list_destructors_ex(release_wddx_packet_rsrc, NULL, "wddx", module_number);
-
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
- php_session_register_serializer("wddx",
- PS_SERIALIZER_ENCODE_NAME(wddx),
- PS_SERIALIZER_DECODE_NAME(wddx));
-#endif
-
- return SUCCESS;
-}
-/* }}} */
-
-/* {{{ PHP_MINFO_FUNCTION
- */
-PHP_MINFO_FUNCTION(wddx)
-{
- php_info_print_table_start();
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
- php_info_print_table_header(2, "WDDX Support", "enabled" );
- php_info_print_table_row(2, "WDDX Session Serializer", "enabled" );
-#else
- php_info_print_table_row(2, "WDDX Support", "enabled" );
-#endif
- php_info_print_table_end();
-}
-/* }}} */
-
-/* {{{ php_wddx_packet_start
- */
-void php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment_len)
-{
- php_wddx_add_chunk_static(packet, WDDX_PACKET_S);
- if (comment) {
- zend_string *escaped = php_escape_html_entities(
- comment, comment_len, 0, ENT_QUOTES, NULL);
-
- php_wddx_add_chunk_static(packet, WDDX_HEADER_S);
- php_wddx_add_chunk_static(packet, WDDX_COMMENT_S);
- php_wddx_add_chunk_ex(packet, ZSTR_VAL(escaped), ZSTR_LEN(escaped));
- php_wddx_add_chunk_static(packet, WDDX_COMMENT_E);
- php_wddx_add_chunk_static(packet, WDDX_HEADER_E);
-
- zend_string_release_ex(escaped, 0);
- } else {
- php_wddx_add_chunk_static(packet, WDDX_HEADER);
- }
- php_wddx_add_chunk_static(packet, WDDX_DATA_S);
-}
-/* }}} */
-
-/* {{{ php_wddx_packet_end
- */
-void php_wddx_packet_end(wddx_packet *packet)
-{
- php_wddx_add_chunk_static(packet, WDDX_DATA_E);
- php_wddx_add_chunk_static(packet, WDDX_PACKET_E);
-}
-/* }}} */
-
-#define FLUSH_BUF() \
- if (l > 0) { \
- php_wddx_add_chunk_ex(packet, buf, l); \
- l = 0; \
- }
-
-/* {{{ php_wddx_serialize_string
- */
-static void php_wddx_serialize_string(wddx_packet *packet, zval *var)
-{
- php_wddx_add_chunk_static(packet, WDDX_STRING_S);
-
- if (Z_STRLEN_P(var) > 0) {
- zend_string *buf = php_escape_html_entities(
- (unsigned char *) Z_STRVAL_P(var), Z_STRLEN_P(var), 0, ENT_QUOTES, NULL);
-
- php_wddx_add_chunk_ex(packet, ZSTR_VAL(buf), ZSTR_LEN(buf));
-
- zend_string_release_ex(buf, 0);
- }
- php_wddx_add_chunk_static(packet, WDDX_STRING_E);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_number
- */
-static void php_wddx_serialize_number(wddx_packet *packet, zval *var)
-{
- char tmp_buf[WDDX_BUF_LEN], *dec_point;
- zend_string *str = zval_get_string_func(var);
- snprintf(tmp_buf, sizeof(tmp_buf), WDDX_NUMBER, ZSTR_VAL(str));
- zend_string_release_ex(str, 0);
-
- dec_point = strchr(tmp_buf, ',');
- if (dec_point) {
- *dec_point = '.';
- }
- php_wddx_add_chunk(packet, tmp_buf);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_boolean
- */
-static void php_wddx_serialize_boolean(wddx_packet *packet, zval *var)
-{
- php_wddx_add_chunk(packet, Z_TYPE_P(var) == IS_TRUE ? WDDX_BOOLEAN_TRUE : WDDX_BOOLEAN_FALSE);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_unset
- */
-static void php_wddx_serialize_unset(wddx_packet *packet)
-{
- php_wddx_add_chunk_static(packet, WDDX_NULL);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_object
- */
-static void php_wddx_serialize_object(wddx_packet *packet, zval *obj)
-{
-/* OBJECTS_FIXME */
- zval *ent, fname, *varname;
- zval retval;
- zend_string *key;
- zend_ulong idx;
- char tmp_buf[WDDX_BUF_LEN];
- HashTable *objhash, *sleephash;
- zend_class_entry *ce;
- PHP_CLASS_ATTRIBUTES;
-
- PHP_SET_CLASS_ATTRIBUTES(obj);
- ce = Z_OBJCE_P(obj);
- if (!ce || ce->serialize || ce->unserialize) {
- php_error_docref(NULL, E_WARNING, "Class %s can not be serialized", ZSTR_VAL(class_name));
- PHP_CLEANUP_CLASS_ATTRIBUTES();
- return;
- }
-
- ZVAL_STRING(&fname, "__sleep");
- /*
- * We try to call __sleep() method on object. It's supposed to return an
- * array of property names to be serialized.
- */
- if (call_user_function(CG(function_table), obj, &fname, &retval, 0, 0) == SUCCESS) {
- if (!Z_ISUNDEF(retval) && (sleephash = HASH_OF(&retval))) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
- snprintf(tmp_buf, WDDX_BUF_LEN, WDDX_VAR_S, PHP_CLASS_NAME_VAR);
- php_wddx_add_chunk(packet, tmp_buf);
- php_wddx_add_chunk_static(packet, WDDX_STRING_S);
- php_wddx_add_chunk_ex(packet, ZSTR_VAL(class_name), ZSTR_LEN(class_name));
- php_wddx_add_chunk_static(packet, WDDX_STRING_E);
- php_wddx_add_chunk_static(packet, WDDX_VAR_E);
-
- objhash = Z_OBJPROP_P(obj);
-
- ZEND_HASH_FOREACH_VAL(sleephash, varname) {
- if (Z_TYPE_P(varname) != IS_STRING) {
- php_error_docref(NULL, E_NOTICE, "__sleep should return an array only containing the names of instance-variables to serialize.");
- continue;
- }
-
- if ((ent = zend_hash_find(objhash, Z_STR_P(varname))) != NULL) {
- php_wddx_serialize_var(packet, ent, Z_STR_P(varname));
- }
- } ZEND_HASH_FOREACH_END();
-
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- }
- } else {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
- snprintf(tmp_buf, WDDX_BUF_LEN, WDDX_VAR_S, PHP_CLASS_NAME_VAR);
- php_wddx_add_chunk(packet, tmp_buf);
- php_wddx_add_chunk_static(packet, WDDX_STRING_S);
- php_wddx_add_chunk_ex(packet, ZSTR_VAL(class_name), ZSTR_LEN(class_name));
- php_wddx_add_chunk_static(packet, WDDX_STRING_E);
- php_wddx_add_chunk_static(packet, WDDX_VAR_E);
-
- objhash = Z_OBJPROP_P(obj);
- ZEND_HASH_FOREACH_KEY_VAL(objhash, idx, key, ent) {
- if (ent == obj) {
- continue;
- }
- if (key) {
- const char *class_name, *prop_name;
- size_t prop_name_len;
- zend_string *tmp;
-
- zend_unmangle_property_name_ex(key, &class_name, &prop_name, &prop_name_len);
- tmp = zend_string_init(prop_name, prop_name_len, 0);
- php_wddx_serialize_var(packet, ent, tmp);
- zend_string_release_ex(tmp, 0);
- } else {
- key = zend_long_to_str(idx);
- php_wddx_serialize_var(packet, ent, key);
- zend_string_release_ex(key, 0);
- }
- } ZEND_HASH_FOREACH_END();
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- }
-
- PHP_CLEANUP_CLASS_ATTRIBUTES();
-
- zval_ptr_dtor(&fname);
- zval_ptr_dtor(&retval);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_array
- */
-static void php_wddx_serialize_array(wddx_packet *packet, zval *arr)
-{
- zval *ent;
- zend_string *key;
- int is_struct = 0;
- zend_ulong idx;
- HashTable *target_hash;
- char tmp_buf[WDDX_BUF_LEN];
- zend_ulong ind = 0;
-
- target_hash = Z_ARRVAL_P(arr);
- ZEND_HASH_FOREACH_KEY(target_hash, idx, key) {
- if (key) {
- is_struct = 1;
- break;
- }
-
- if (idx != ind) {
- is_struct = 1;
- break;
- }
- ind++;
- } ZEND_HASH_FOREACH_END();
-
- if (is_struct) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
- } else {
- snprintf(tmp_buf, sizeof(tmp_buf), WDDX_ARRAY_S, zend_hash_num_elements(target_hash));
- php_wddx_add_chunk(packet, tmp_buf);
- }
-
- ZEND_HASH_FOREACH_KEY_VAL(target_hash, idx, key, ent) {
- if (ent == arr) {
- continue;
- }
-
- if (is_struct) {
- if (key) {
- php_wddx_serialize_var(packet, ent, key);
- } else {
- key = zend_long_to_str(idx);
- php_wddx_serialize_var(packet, ent, key);
- zend_string_release_ex(key, 0);
- }
- } else {
- php_wddx_serialize_var(packet, ent, NULL);
- }
- } ZEND_HASH_FOREACH_END();
-
- if (is_struct) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- } else {
- php_wddx_add_chunk_static(packet, WDDX_ARRAY_E);
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_var
- */
-void php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name)
-{
- HashTable *ht;
-
- if (name) {
- char *tmp_buf;
- zend_string *name_esc = php_escape_html_entities((unsigned char *) ZSTR_VAL(name), ZSTR_LEN(name), 0, ENT_QUOTES, NULL);
- tmp_buf = emalloc(ZSTR_LEN(name_esc) + sizeof(WDDX_VAR_S));
- snprintf(tmp_buf, ZSTR_LEN(name_esc) + sizeof(WDDX_VAR_S), WDDX_VAR_S, ZSTR_VAL(name_esc));
- php_wddx_add_chunk(packet, tmp_buf);
- efree(tmp_buf);
- zend_string_release_ex(name_esc, 0);
- }
-
- if (Z_TYPE_P(var) == IS_INDIRECT) {
- var = Z_INDIRECT_P(var);
- }
- ZVAL_DEREF(var);
- switch (Z_TYPE_P(var)) {
- case IS_STRING:
- php_wddx_serialize_string(packet, var);
- break;
-
- case IS_LONG:
- case IS_DOUBLE:
- php_wddx_serialize_number(packet, var);
- break;
-
- case IS_TRUE:
- case IS_FALSE:
- php_wddx_serialize_boolean(packet, var);
- break;
-
- case IS_NULL:
- php_wddx_serialize_unset(packet);
- break;
-
- case IS_ARRAY:
- ht = Z_ARRVAL_P(var);
- if (Z_REFCOUNTED_P(var)) {
- if (GC_IS_RECURSIVE(ht)) {
- zend_throw_error(NULL, "WDDX doesn't support circular references");
- return;
- }
- GC_PROTECT_RECURSION(ht);
- }
- php_wddx_serialize_array(packet, var);
- if (Z_REFCOUNTED_P(var)) {
- GC_UNPROTECT_RECURSION(ht);
- }
- break;
-
- case IS_OBJECT:
- ht = Z_OBJPROP_P(var);
- if (GC_IS_RECURSIVE(ht)) {
- zend_throw_error(NULL, "WDDX doesn't support circular references");
- return;
- }
- GC_PROTECT_RECURSION(ht);
- php_wddx_serialize_object(packet, var);
- GC_UNPROTECT_RECURSION(ht);
- break;
- }
-
- if (name) {
- php_wddx_add_chunk_static(packet, WDDX_VAR_E);
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_add_var
- */
-static void php_wddx_add_var(wddx_packet *packet, zval *name_var)
-{
- zval *val;
- HashTable *target_hash;
-
- if (Z_TYPE_P(name_var) == IS_STRING) {
- zend_array *symbol_table = zend_rebuild_symbol_table();
- if ((val = zend_hash_find(symbol_table, Z_STR_P(name_var))) != NULL) {
- if (Z_TYPE_P(val) == IS_INDIRECT) {
- val = Z_INDIRECT_P(val);
- }
- php_wddx_serialize_var(packet, val, Z_STR_P(name_var));
- }
- } else if (Z_TYPE_P(name_var) == IS_ARRAY || Z_TYPE_P(name_var) == IS_OBJECT) {
- int is_array = Z_TYPE_P(name_var) == IS_ARRAY;
-
- target_hash = HASH_OF(name_var);
-
- if (!Z_REFCOUNTED_P(name_var)) {
- ZEND_HASH_FOREACH_VAL(target_hash, val) {
- php_wddx_add_var(packet, val);
- } ZEND_HASH_FOREACH_END();
- } else {
- if (is_array) {
- if (GC_IS_RECURSIVE(target_hash)) {
- php_error_docref(NULL, E_WARNING, "recursion detected");
- return;
- }
- GC_PROTECT_RECURSION(target_hash);
- }
- ZEND_HASH_FOREACH_VAL(target_hash, val) {
- ZVAL_DEREF(val);
- php_wddx_add_var(packet, val);
-
- } ZEND_HASH_FOREACH_END();
- if (is_array) {
- GC_UNPROTECT_RECURSION(target_hash);
- }
- }
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_push_element
- */
-static void php_wddx_push_element(void *user_data, const XML_Char *name, const XML_Char **atts)
-{
- st_entry ent;
- wddx_stack *stack = (wddx_stack *)user_data;
- if (!strcmp((char *)name, EL_PACKET)) {
- int i;
-
- if (atts) for (i=0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], EL_VERSION)) {
- /* nothing for now */
- }
- }
- } else if (!strcmp((char *)name, EL_STRING)) {
- ent.type = ST_STRING;
- SET_STACK_VARNAME;
-
- ZVAL_STR(&ent.data, ZSTR_EMPTY_ALLOC());
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_BINARY)) {
- ent.type = ST_BINARY;
- SET_STACK_VARNAME;
-
- ZVAL_STR(&ent.data, ZSTR_EMPTY_ALLOC());
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_CHAR)) {
- int i;
-
- if (atts) for (i = 0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], EL_CHAR_CODE) && atts[i+1] && atts[i+1][0]) {
- char tmp_buf[2];
-
- snprintf(tmp_buf, sizeof(tmp_buf), "%c", (char)strtol((char *)atts[i+1], NULL, 16));
- php_wddx_process_data(user_data, (XML_Char *) tmp_buf, strlen(tmp_buf));
- break;
- }
- }
- } else if (!strcmp((char *)name, EL_NUMBER)) {
- ent.type = ST_NUMBER;
- SET_STACK_VARNAME;
-
- ZVAL_LONG(&ent.data, 0);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_BOOLEAN)) {
- int i;
-
- ent.type = ST_BOOLEAN;
- SET_STACK_VARNAME;
- if (atts) for (i = 0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], EL_VALUE) && atts[i+1] && atts[i+1][0]) {
- ZVAL_TRUE(&ent.data);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- php_wddx_process_data(user_data, atts[i+1], strlen((char *)atts[i+1]));
- break;
- }
- } else {
- ZVAL_FALSE(&ent.data);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- }
- } else if (!strcmp((char *)name, EL_NULL)) {
- ent.type = ST_NULL;
- SET_STACK_VARNAME;
-
- ZVAL_NULL(&ent.data);
-
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_ARRAY)) {
- ent.type = ST_ARRAY;
- SET_STACK_VARNAME;
-
- array_init(&ent.data);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_STRUCT)) {
- ent.type = ST_STRUCT;
- SET_STACK_VARNAME;
- array_init(&ent.data);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_VAR)) {
- int i;
-
- if (atts) for (i = 0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], EL_NAME) && atts[i+1] && atts[i+1][0]) {
- if (stack->varname) efree(stack->varname);
- stack->varname = estrdup((char *)atts[i+1]);
- break;
- }
- }
- } else if (!strcmp((char *)name, EL_RECORDSET)) {
- int i;
-
- ent.type = ST_RECORDSET;
- SET_STACK_VARNAME;
- array_init(&ent.data);
-
- if (atts) for (i = 0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], "fieldNames") && atts[i+1] && atts[i+1][0]) {
- zval tmp;
- char *key;
- const char *p1, *p2, *endp;
-
- i++;
- endp = (char *)atts[i] + strlen((char *)atts[i]);
- p1 = (char *)atts[i];
- while ((p2 = php_memnstr(p1, ",", sizeof(",")-1, endp)) != NULL) {
- key = estrndup(p1, p2 - p1);
- array_init(&tmp);
- add_assoc_zval_ex(&ent.data, key, p2 - p1, &tmp);
- p1 = p2 + sizeof(",")-1;
- efree(key);
- }
-
- if (p1 <= endp) {
- array_init(&tmp);
- add_assoc_zval_ex(&ent.data, p1, endp - p1, &tmp);
- }
-
- break;
- }
- }
-
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_FIELD)) {
- int i;
- st_entry ent;
-
- ent.type = ST_FIELD;
- ent.varname = NULL;
- ZVAL_UNDEF(&ent.data);
-
- if (atts) for (i = 0; atts[i]; i++) {
- if (!strcmp((char *)atts[i], EL_NAME) && atts[i+1] && atts[i+1][0]) {
- st_entry *recordset;
- zval *field;
-
- if (wddx_stack_top(stack, (void**)&recordset) == SUCCESS &&
- recordset->type == ST_RECORDSET &&
- (field = zend_hash_str_find(Z_ARRVAL(recordset->data), (char*)atts[i+1], strlen((char *)atts[i+1]))) != NULL) {
- ZVAL_COPY_VALUE(&ent.data, field);
- }
-
- break;
- }
- }
-
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- } else if (!strcmp((char *)name, EL_DATETIME)) {
- ent.type = ST_DATETIME;
- SET_STACK_VARNAME;
-
- ZVAL_LONG(&ent.data, 0);
- wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_pop_element
- */
-static void php_wddx_pop_element(void *user_data, const XML_Char *name)
-{
- st_entry *ent1, *ent2;
- wddx_stack *stack = (wddx_stack *)user_data;
- HashTable *target_hash;
- zend_class_entry *pce;
- zval obj;
-
-/* OBJECTS_FIXME */
- if (stack->top == 0) {
- return;
- }
-
- if (!strcmp((char *)name, EL_STRING) || !strcmp((char *)name, EL_NUMBER) ||
- !strcmp((char *)name, EL_BOOLEAN) || !strcmp((char *)name, EL_NULL) ||
- !strcmp((char *)name, EL_ARRAY) || !strcmp((char *)name, EL_STRUCT) ||
- !strcmp((char *)name, EL_RECORDSET) || !strcmp((char *)name, EL_BINARY) ||
- !strcmp((char *)name, EL_DATETIME)) {
- wddx_stack_top(stack, (void**)&ent1);
-
- if (Z_TYPE(ent1->data) == IS_UNDEF) {
- if (stack->top > 1) {
- stack->top--;
- efree(ent1);
- } else {
- stack->done = 1;
- }
- return;
- }
-
- if (!strcmp((char *)name, EL_BINARY)) {
- zend_string *new_str = NULL;
-
- if (ZSTR_EMPTY_ALLOC() != Z_STR(ent1->data)) {
- new_str = php_base64_decode(
- (unsigned char *)Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
- }
-
- zval_ptr_dtor(&ent1->data);
- if (new_str) {
- ZVAL_STR(&ent1->data, new_str);
- } else {
- ZVAL_EMPTY_STRING(&ent1->data);
- }
- }
-
- /* Call __wakeup() method on the object. */
- if (Z_TYPE(ent1->data) == IS_OBJECT) {
- zval fname, retval;
-
- ZVAL_STRING(&fname, "__wakeup");
-
- call_user_function(NULL, &ent1->data, &fname, &retval, 0, 0);
-
- zval_ptr_dtor(&fname);
- zval_ptr_dtor(&retval);
- }
-
- if (stack->top > 1) {
- stack->top--;
- wddx_stack_top(stack, (void**)&ent2);
-
- /* if non-existent field */
- if (Z_ISUNDEF(ent2->data)) {
- zval_ptr_dtor(&ent1->data);
- efree(ent1);
- return;
- }
-
- if (Z_TYPE(ent2->data) == IS_ARRAY || Z_TYPE(ent2->data) == IS_OBJECT) {
- target_hash = HASH_OF(&ent2->data);
-
- if (ent1->varname) {
- if (!strcmp(ent1->varname, PHP_CLASS_NAME_VAR) &&
- Z_TYPE(ent1->data) == IS_STRING && Z_STRLEN(ent1->data) &&
- ent2->type == ST_STRUCT && Z_TYPE(ent2->data) == IS_ARRAY) {
- zend_bool incomplete_class = 0;
-
- zend_str_tolower(Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
- zend_string_forget_hash_val(Z_STR(ent1->data));
- if ((pce = zend_hash_find_ptr(EG(class_table), Z_STR(ent1->data))) == NULL) {
- incomplete_class = 1;
- pce = PHP_IC_ENTRY;
- }
-
- if (pce != PHP_IC_ENTRY && (pce->serialize || pce->unserialize)) {
- zval_ptr_dtor(&ent2->data);
- ZVAL_UNDEF(&ent2->data);
- php_error_docref(NULL, E_WARNING, "Class %s can not be unserialized", Z_STRVAL(ent1->data));
- } else {
- /* Initialize target object */
- if (object_init_ex(&obj, pce) != SUCCESS || EG(exception)) {
- zval_ptr_dtor(&ent2->data);
- ZVAL_UNDEF(&ent2->data);
- php_error_docref(NULL, E_WARNING, "Class %s can not be instantiated", Z_STRVAL(ent1->data));
- } else {
- /* Merge current hashtable with object's default properties */
- zend_hash_merge(Z_OBJPROP(obj),
- Z_ARRVAL(ent2->data),
- zval_add_ref, 0);
-
- if (incomplete_class) {
- php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
- }
-
- /* Clean up old array entry */
- zval_ptr_dtor(&ent2->data);
-
- /* Set stack entry to point to the newly created object */
- ZVAL_COPY_VALUE(&ent2->data, &obj);
- }
- }
-
- /* Clean up class name var entry */
- zval_ptr_dtor(&ent1->data);
- } else if (Z_TYPE(ent2->data) == IS_OBJECT) {
- zend_update_property(Z_OBJCE(ent2->data), &ent2->data, ent1->varname, strlen(ent1->varname), &ent1->data);
- Z_TRY_DELREF(ent1->data);
- } else {
- zend_symtable_str_update(target_hash, ent1->varname, strlen(ent1->varname), &ent1->data);
- }
- efree(ent1->varname);
- } else {
- zend_hash_next_index_insert(target_hash, &ent1->data);
- }
- }
- efree(ent1);
- } else {
- stack->done = 1;
- }
- } else if (!strcmp((char *)name, EL_VAR) && stack->varname) {
- efree(stack->varname);
- stack->varname = NULL;
- } else if (!strcmp((char *)name, EL_FIELD)) {
- st_entry *ent;
- wddx_stack_top(stack, (void **)&ent);
- efree(ent);
- stack->top--;
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_process_data
- */
-static void php_wddx_process_data(void *user_data, const XML_Char *s, int len)
-{
- st_entry *ent;
- wddx_stack *stack = (wddx_stack *)user_data;
-
- if (!wddx_stack_is_empty(stack) && !stack->done) {
- wddx_stack_top(stack, (void**)&ent);
- switch (ent->type) {
- case ST_BINARY:
- case ST_STRING:
- if (Z_STRLEN(ent->data) == 0) {
- zval_ptr_dtor(&ent->data);
- ZVAL_STRINGL(&ent->data, (char *)s, len);
- } else {
- Z_STR(ent->data) = zend_string_extend(Z_STR(ent->data), Z_STRLEN(ent->data) + len, 0);
- memcpy(Z_STRVAL(ent->data) + Z_STRLEN(ent->data) - len, (char *)s, len);
- Z_STRVAL(ent->data)[Z_STRLEN(ent->data)] = '\0';
- }
- break;
- case ST_NUMBER:
- ZVAL_STRINGL(&ent->data, (char *)s, len);
- convert_scalar_to_number(&ent->data);
- break;
-
- case ST_BOOLEAN:
- if (!strcmp((char *)s, "true")) {
- ZVAL_TRUE(&ent->data);
- } else if (!strcmp((char *)s, "false")) {
- ZVAL_FALSE(&ent->data);
- } else {
- zval_ptr_dtor(&ent->data);
- if (ent->varname) {
- efree(ent->varname);
- ent->varname = NULL;
- }
- ZVAL_UNDEF(&ent->data);
- }
- break;
-
- case ST_DATETIME: {
- zend_string *str;
-
- if (Z_TYPE(ent->data) == IS_STRING) {
- str = zend_string_safe_alloc(Z_STRLEN(ent->data), 1, len, 0);
- memcpy(ZSTR_VAL(str), Z_STRVAL(ent->data), Z_STRLEN(ent->data));
- memcpy(ZSTR_VAL(str) + Z_STRLEN(ent->data), s, len);
- ZSTR_VAL(str)[ZSTR_LEN(str)] = '\0';
- zval_ptr_dtor_str(&ent->data);
- } else {
- str = zend_string_init((char *)s, len, 0);
- }
-
- ZVAL_LONG(&ent->data, php_parse_date(ZSTR_VAL(str), NULL));
- /* date out of range < 1969 or > 2038 */
- if (Z_LVAL(ent->data) == -1) {
- ZVAL_STR_COPY(&ent->data, str);
- }
-
- zend_string_release_ex(str, 0);
- }
- break;
-
- default:
- break;
- }
- }
-}
-/* }}} */
-
-/* {{{ php_wddx_deserialize_ex
- */
-int php_wddx_deserialize_ex(const char *value, size_t vallen, zval *return_value)
-{
- wddx_stack stack;
- XML_Parser parser;
- st_entry *ent;
- int retval;
-
- wddx_stack_init(&stack);
- parser = XML_ParserCreate((XML_Char *) "UTF-8");
-
- XML_SetUserData(parser, &stack);
- XML_SetElementHandler(parser, php_wddx_push_element, php_wddx_pop_element);
- XML_SetCharacterDataHandler(parser, php_wddx_process_data);
-
- /* XXX value should be parsed in the loop to exhaust size_t */
- XML_Parse(parser, (const XML_Char *) value, (int)vallen, 1);
-
- XML_ParserFree(parser);
-
- if (stack.top == 1) {
- wddx_stack_top(&stack, (void**)&ent);
- if (Z_ISUNDEF(ent->data)) {
- retval = FAILURE;
- } else {
- ZVAL_COPY(return_value, &ent->data);
- retval = SUCCESS;
- }
- } else {
- retval = FAILURE;
- }
-
- wddx_stack_destroy(&stack);
-
- return retval;
-}
-/* }}} */
-
-/* {{{ proto string wddx_serialize_value(mixed var [, string comment])
- Creates a new packet and serializes the given value */
-PHP_FUNCTION(wddx_serialize_value)
-{
- zval *var;
- char *comment = NULL;
- size_t comment_len = 0;
- wddx_packet *packet;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|s", &var, &comment, &comment_len) == FAILURE) {
- return;
- }
-
- packet = php_wddx_constructor();
-
- php_wddx_packet_start(packet, comment, comment_len);
- php_wddx_serialize_var(packet, var, NULL);
- php_wddx_packet_end(packet);
- smart_str_0(packet);
-
- RETVAL_STR_COPY(packet->s);
- php_wddx_destructor(packet);
-}
-/* }}} */
-
-/* {{{ proto string wddx_serialize_vars(mixed var_name [, mixed ...])
- Creates a new packet and serializes given variables into a struct */
-PHP_FUNCTION(wddx_serialize_vars)
-{
- int num_args, i;
- wddx_packet *packet;
- zval *args = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &num_args) == FAILURE) {
- return;
- }
-
- packet = php_wddx_constructor();
-
- php_wddx_packet_start(packet, NULL, 0);
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
- for (i=0; i<num_args; i++) {
- zval *arg;
- if (!Z_ISREF(args[i])) {
- arg = &args[i];
- } else {
- arg = Z_REFVAL(args[i]);
- }
- if (Z_TYPE_P(arg) != IS_ARRAY && Z_TYPE_P(arg) != IS_OBJECT) {
- convert_to_string_ex(arg);
- }
- php_wddx_add_var(packet, arg);
- }
-
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- php_wddx_packet_end(packet);
- smart_str_0(packet);
-
- RETVAL_STR_COPY(packet->s);
- php_wddx_destructor(packet);
-}
-/* }}} */
-
-/* {{{ php_wddx_constructor
- */
-wddx_packet *php_wddx_constructor(void)
-{
- smart_str *packet;
-
- packet = ecalloc(1, sizeof(smart_str));
-
- return packet;
-}
-/* }}} */
-
-/* {{{ php_wddx_destructor
- */
-void php_wddx_destructor(wddx_packet *packet)
-{
- smart_str_free(packet);
- efree(packet);
-}
-/* }}} */
-
-/* {{{ proto resource wddx_packet_start([string comment])
- Starts a WDDX packet with optional comment and returns the packet id */
-PHP_FUNCTION(wddx_packet_start)
-{
- char *comment = NULL;
- size_t comment_len = 0;
- wddx_packet *packet;
-
- comment = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &comment, &comment_len) == FAILURE) {
- return;
- }
-
- packet = php_wddx_constructor();
-
- php_wddx_packet_start(packet, comment, comment_len);
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
- RETURN_RES(zend_register_resource(packet, le_wddx));
-}
-/* }}} */
-
-/* {{{ proto string wddx_packet_end(resource packet_id)
- Ends specified WDDX packet and returns the string containing the packet */
-PHP_FUNCTION(wddx_packet_end)
-{
- zval *packet_id;
- wddx_packet *packet = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &packet_id) == FAILURE) {
- return;
- }
-
- if ((packet = (wddx_packet *)zend_fetch_resource(Z_RES_P(packet_id), "WDDX packet ID", le_wddx)) == NULL) {
- RETURN_FALSE;
- }
-
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-
- php_wddx_packet_end(packet);
- smart_str_0(packet);
-
- RETVAL_STR_COPY(packet->s);
-
- zend_list_close(Z_RES_P(packet_id));
-}
-/* }}} */
-
-/* {{{ proto bool wddx_add_vars(resource packet_id, mixed var_names [, mixed ...])
- Serializes given variables and adds them to packet given by packet_id */
-PHP_FUNCTION(wddx_add_vars)
-{
- int num_args, i;
- zval *args = NULL;
- zval *packet_id;
- wddx_packet *packet = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "r+", &packet_id, &args, &num_args) == FAILURE) {
- return;
- }
-
- if ((packet = (wddx_packet *)zend_fetch_resource(Z_RES_P(packet_id), "WDDX packet ID", le_wddx)) == NULL) {
- RETURN_FALSE;
- }
-
- for (i=0; i<num_args; i++) {
- zval *arg;
- if (!Z_ISREF(args[i])) {
- arg = &args[i];
- } else {
- arg = Z_REFVAL(args[i]);
- }
- if (Z_TYPE_P(arg) != IS_ARRAY && Z_TYPE_P(arg) != IS_OBJECT) {
- convert_to_string_ex(arg);
- }
- php_wddx_add_var(packet, arg);
- }
-
- RETURN_TRUE;
-}
-/* }}} */
-
-/* {{{ proto mixed wddx_deserialize(mixed packet)
- Deserializes given packet and returns a PHP value */
-PHP_FUNCTION(wddx_deserialize)
-{
- zval *packet;
- php_stream *stream = NULL;
- zend_string *payload = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &packet) == FAILURE) {
- return;
- }
-
- if (Z_TYPE_P(packet) == IS_STRING) {
- payload = Z_STR_P(packet);
- } else if (Z_TYPE_P(packet) == IS_RESOURCE) {
- php_stream_from_zval(stream, packet);
- if (stream) {
- payload = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0);
- }
- } else {
- php_error_docref(NULL, E_WARNING, "Expecting parameter 1 to be a string or a stream");
- return;
- }
-
- if (payload == NULL) {
- return;
- }
-
- php_wddx_deserialize_ex(ZSTR_VAL(payload), ZSTR_LEN(payload), return_value);
-
- if (stream) {
- efree(payload);
- }
-}
-/* }}} */
-
-#endif /* HAVE_LIBEXPAT */
diff --git a/main/internal_functions_win32.c b/main/internal_functions_win32.c
index 45093ec739..c67b6ae0b5 100644
--- a/main/internal_functions_win32.c
+++ b/main/internal_functions_win32.c
@@ -92,9 +92,6 @@
#if HAVE_XML
#include "ext/xml/php_xml.h"
#endif
-#if HAVE_XML && HAVE_WDDX
-#include "ext/wddx/php_wddx.h"
-#endif
#include "ext/com_dotnet/php_com_dotnet.h"
#ifdef HAVE_SPL
#include "ext/spl/php_spl.h"
@@ -164,9 +161,6 @@ static zend_module_entry * const php_builtin_extensions[] = {
#if HAVE_XML
,phpext_xml_ptr
#endif
-#if HAVE_XML && HAVE_WDDX
- ,phpext_wddx_ptr
-#endif
#if HAVE_SPL
,phpext_spl_ptr
#endif