- Added RFC2397 (data: stream) support. (Marcus)
- Fixed handling of extremely long paths inside tempnam() function. (Ilia)
- Fixed bug #37587 (var without attribute causes segfault). (Marcus)
+- Fixed bug #37569 (WDDX incorrectly encodes high-ascii characters). (Ilia)
- Fixed bug #37565 (Using reflection::export with simplexml causing a crash).
(Marcus)
- Fixed bug #37563 (array_key_exists performance is poor for &$array). (Ilia)
--- /dev/null
+--TEST--
+Bug #37569 (WDDX incorrectly encodes high-ascii characters)
+--FILE--
+<?php
+echo wddx_serialize_value(chr(1))."\n";
+echo wddx_serialize_value(chr(128))."\n";
+?>
+--EXPECT--
+<wddxPacket version='1.0'><header/><data><string><char code='01'/></string></data></wddxPacket>
+<wddxPacket version='1.0'><header/><data><string><char code='80'/></string></data></wddxPacket>
break;
default:
- if (iscntrl((int)*(unsigned char *)p)) {
+ if (iscntrl((int)*(unsigned char *)p) || (int)*(unsigned char *)p >= 127) {
FLUSH_BUF();
- sprintf(control_buf, WDDX_CHAR, *p);
+ sprintf(control_buf, WDDX_CHAR, (int)*(unsigned char *)p);
php_wddx_add_chunk(packet, control_buf);
} else
buf[l++] = *p;