]> granicus.if.org Git - php/commitdiff
Merge remote-tracking branch 'origin/PHP-5.6'
authorBob Weinand <bobwei9@hotmail.com>
Tue, 28 Oct 2014 22:00:10 +0000 (23:00 +0100)
committerBob Weinand <bobwei9@hotmail.com>
Tue, 28 Oct 2014 22:00:10 +0000 (23:00 +0100)
Conflicts:
sapi/phpdbg/phpdbg_wait.c
sapi/phpdbg/phpdbg_webdata_transfer.c

1  2 
sapi/phpdbg/phpdbg_wait.c
sapi/phpdbg/phpdbg_webdata_transfer.c

index 9051ca379f562ca4ab0a39246dbb5055692e8406,a8c7dd49cb2705ffd632ac2eaccf3cfd0d841a64..68ccf6c1233639e472f5b8fe8ea3256a53e1136a
@@@ -126,16 -127,18 +126,18 @@@ static int phpdbg_array_intersect(phpdb
  }
  
  void phpdbg_webdata_decompress(char *msg, int len TSRMLS_DC) {
- #ifdef HAVE_JSON
        zval *free_zv = NULL;
 -      zval zv, *zvp = &zv, **zvpp;
 +      zval zv, *zvp;
        HashTable *ht;
-       php_json_decode(&zv, msg, len, 1, 1000 /* enough */ TSRMLS_CC);
+       php_unserialize_data_t var_hash;
  
-       if (JSON_G(error_code) != PHP_JSON_ERROR_NONE) {
-               phpdbg_error("wait", "type=\"invaliddata\" import=\"fail\"", "Malformed JSON was sent to this socket, arborting");
+       PHP_VAR_UNSERIALIZE_INIT(var_hash);
 -      if (!php_var_unserialize(&zvp, (const unsigned char **) &msg, (unsigned char *) msg + len, &var_hash TSRMLS_CC)) {
++      if (!php_var_unserialize(&zv, (const unsigned char **) &msg, (unsigned char *) msg + len, &var_hash TSRMLS_CC)) {
+               PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
+               phpdbg_error("wait", "type=\"invaliddata\" import=\"fail\"", "Malformed serialized was sent to this socket, arborting");
                return;
        }
+       PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
  
        ht = Z_ARRVAL(zv);
  
index 2f18b9d082619b3d029b8a9472d4824b6b4cbcf8,7c169ee11397f626e8cedc496e5041d1ad2c75b9..5ce67590626a3dc236518c5fec152a05d1be8e20
  */
  
  #include "phpdbg_webdata_transfer.h"
- #include "ext/json/php_json.h"
+ #include "ext/standard/php_var.h"
  
 +static int phpdbg_is_auto_global(char *name, int len TSRMLS_DC) {
 +      int ret;
 +      zend_string *str = zend_string_init(name, len, 0);
 +      ret = zend_is_auto_global(str TSRMLS_CC);
 +      efree(str);
 +      return ret;
 +}
 +
  PHPDBG_API void phpdbg_webdata_compress(char **msg, int *len TSRMLS_DC) {
- #ifdef HAVE_JSON
-       smart_str buf = {0};
        zval array;
        HashTable *ht;
 -      /* I really need to change that to an array of zvals... */
 -      zval zv1 = {{0}}, *zvp1 = &zv1;
 -      zval zv2 = {{0}}, *zvp2 = &zv2;
 -      zval zv3 = {{0}}, *zvp3 = &zv3;
 -      zval zv4 = {{0}}, *zvp4 = &zv4;
 -      zval zv5 = {{0}}, *zvp5 = &zv5;
 -      zval zv6 = {{0}}, *zvp6 = &zv6;
 -      zval zv7 = {{0}}, *zvp7 = &zv7;
 -      zval zv8 = {{0}}, *zvp8 = &zv8;
 +      zval zv[9] = {{{0}}};
  
        array_init(&array);
        ht = Z_ARRVAL(array);
        }
  
        /* encode data */
-       php_json_encode(&buf, &array, 0 TSRMLS_CC);
-       *msg = buf.s->val;
-       *len = buf.s->len;
+       {
+               php_serialize_data_t var_hash;
+               smart_str buf = {0};
 -              zval *arrayptr = &array;
+               PHP_VAR_SERIALIZE_INIT(var_hash);
 -              php_var_serialize(&buf, &arrayptr, &var_hash TSRMLS_CC);
++              php_var_serialize(&buf, &array, &var_hash TSRMLS_CC);
+               PHP_VAR_SERIALIZE_DESTROY(var_hash);
 -              *msg = buf.c;
 -              *len = buf.len;
++              *msg = buf.s->val;
++              *len = buf.s->len;
+       }
        zval_dtor(&array);
- #endif
  }