[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/standard/http_fopen_wrapper.c branches/PHP_5_4/ext/standard/http_fopen_wrapper.c trunk/ext/standard/http_fopen_wrapper.c
iliaaSun, 29 May 2011 09:23:08 + Revision: http://svn.php.net/viewvc?view=revisionrevision=311542 Log: Fixed bug #54137 (file_get_contents POST request sends additional line break). Bug: http://bugs.php.net/54137 (Open) file_get_contents POST request sends additional line breaks Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/http_fopen_wrapper.c U php/php-src/branches/PHP_5_4/ext/standard/http_fopen_wrapper.c U php/php-src/trunk/ext/standard/http_fopen_wrapper.c Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-05-29 07:35:10 UTC (rev 311541) +++ php/php-src/branches/PHP_5_3/NEWS 2011-05-29 09:23:08 UTC (rev 311542) @@ -28,6 +28,7 @@ . Fixed a crash inside dtor for error handling. (Ilia) . Fixed bug #54935 php_win_err can lead to crash. (Pierre) + . Fixed bug #54924 (assert.* is not being reset upon request shutdown). (Ilia) . Fixed bug #54895 (Fix compiling with older gcc version without need for membar_producer macro). (mhei at heimpold dot de) . Fixed bug #54723 (getimagesize() doesn't check the full ico signature). @@ -38,6 +39,8 @@ (CVE-2011-1148) . Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment). (tomas dot brastavicius at quantum dot lt, Pierrick) + . Fixed bug #54137 (file_get_contents POST request sends additional line break). +(maurice-php at mertinkat dot net, Ilia) . Fixed bug #54866 (incorrect accounting for realpath_cache_size) (Dustin Ward) . Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size) (Pierre, os at irj dot ru) Modified: php/php-src/branches/PHP_5_3/ext/standard/http_fopen_wrapper.c === --- php/php-src/branches/PHP_5_3/ext/standard/http_fopen_wrapper.c 2011-05-29 07:35:10 UTC (rev 311541) +++ php/php-src/branches/PHP_5_3/ext/standard/http_fopen_wrapper.c 2011-05-29 09:23:08 UTC (rev 311542) @@ -631,7 +631,6 @@ } php_stream_write(stream, \r\n, sizeof(\r\n)-1); php_stream_write(stream, Z_STRVAL_PP(tmpzval), Z_STRLEN_PP(tmpzval)); - php_stream_write(stream, \r\n\r\n, sizeof(\r\n\r\n)-1); } else { php_stream_write(stream, \r\n, sizeof(\r\n)-1); } Modified: php/php-src/branches/PHP_5_4/ext/standard/http_fopen_wrapper.c === --- php/php-src/branches/PHP_5_4/ext/standard/http_fopen_wrapper.c 2011-05-29 07:35:10 UTC (rev 311541) +++ php/php-src/branches/PHP_5_4/ext/standard/http_fopen_wrapper.c 2011-05-29 09:23:08 UTC (rev 311542) @@ -628,7 +628,6 @@ } php_stream_write(stream, \r\n, sizeof(\r\n)-1); php_stream_write(stream, Z_STRVAL_PP(tmpzval), Z_STRLEN_PP(tmpzval)); - php_stream_write(stream, \r\n\r\n, sizeof(\r\n\r\n)-1); } else { php_stream_write(stream, \r\n, sizeof(\r\n)-1); } Modified: php/php-src/trunk/ext/standard/http_fopen_wrapper.c === --- php/php-src/trunk/ext/standard/http_fopen_wrapper.c 2011-05-29 07:35:10 UTC (rev 311541) +++ php/php-src/trunk/ext/standard/http_fopen_wrapper.c 2011-05-29 09:23:08 UTC (rev 311542) @@ -628,7 +628,6 @@ } php_stream_write(stream, \r\n, sizeof(\r\n)-1); php_stream_write(stream, Z_STRVAL_PP(tmpzval), Z_STRLEN_PP(tmpzval)); - php_stream_write(stream, \r\n\r\n, sizeof(\r\n\r\n)-1); } else { php_stream_write(stream, \r\n, sizeof(\r\n)-1); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/standard/file.c branches/PHP_5_3/ext/standard/tests/file/bug53848.phpt branches/PHP_5_4/ext/standard/file.c branches/PHP_5_4/ext
iliaaSun, 29 May 2011 10:23:06 + Revision: http://svn.php.net/viewvc?view=revisionrevision=311543 Log: Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields). Bug: http://bugs.php.net/53848 (Closed) fgetcsv ignores spaces at beginnings of fields Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/file.c A php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug53848.phpt U php/php-src/branches/PHP_5_4/ext/standard/file.c A php/php-src/branches/PHP_5_4/ext/standard/tests/file/bug53848.phpt U php/php-src/trunk/ext/standard/file.c A php/php-src/trunk/ext/standard/tests/file/bug53848.phpt Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-05-29 09:23:08 UTC (rev 311542) +++ php/php-src/branches/PHP_5_3/NEWS 2011-05-29 10:23:06 UTC (rev 311543) @@ -44,6 +44,7 @@ . Fixed bug #54866 (incorrect accounting for realpath_cache_size) (Dustin Ward) . Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size) (Pierre, os at irj dot ru) + . Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields). (Ilia) . Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter). (slusarz at curecanti dot org) . Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using Modified: php/php-src/branches/PHP_5_3/ext/standard/file.c === --- php/php-src/branches/PHP_5_3/ext/standard/file.c2011-05-29 09:23:08 UTC (rev 311542) +++ php/php-src/branches/PHP_5_3/ext/standard/file.c2011-05-29 10:23:06 UTC (rev 311543) @@ -2196,30 +2196,17 @@ char *comp_end, *hunk_begin; tptr = temp; - - /* 1. Strip any leading space */ - for (;;) { - inc_len = (bptr limit ? (*bptr == '\0' ? 1: php_mblen(bptr, limit - bptr)): 0); - switch (inc_len) { - case -2: - case -1: - inc_len = 1; - php_mblen(NULL, 0); - break; - case 0: - goto quit_loop_1; - case 1: - if (!isspace((int)*(unsigned char *)bptr) || *bptr == delimiter) { - goto quit_loop_1; - } - break; - default: - goto quit_loop_1; + inc_len = (bptr limit ? (*bptr == '\0' ? 1: php_mblen(bptr, limit - bptr)): 0); + if (inc_len == 1) { + char *tmp = bptr; + while (isspace((int)*(unsigned char *)tmp)) { + tmp++; } - bptr += inc_len; + if (*tmp == enclosure) { + bptr = tmp; + } } - quit_loop_1: if (first_field bptr == line_end) { add_next_index_null(return_value); break; Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug53848.phpt === --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug53848.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug53848.phpt 2011-05-29 10:23:06 UTC (rev 311543) @@ -0,0 +1,25 @@ +--TEST-- +Bug #53848 (fgetcsv removes leading spaces from fields) +--FILE-- +?php +$file = dirname(__FILE__) . /bug39538.csv; +@unlink($file); +file_put_contents($file, a,b\n c, d); +$fp = fopen($file, r); +while ($l = fgetcsv($fp)) var_dump($l); +fclose($fp); +@unlink($file); +? +--EXPECT-- +array(2) { + [0]= + string(1) a + [1]= + string(1) b +} +array(2) { + [0]= + string(3) c + [1]= + string(3) d +} Modified: php/php-src/branches/PHP_5_4/ext/standard/file.c === --- php/php-src/branches/PHP_5_4/ext/standard/file.c2011-05-29 09:23:08 UTC (rev 311542) +++ php/php-src/branches/PHP_5_4/ext/standard/file.c2011-05-29 10:23:06 UTC (rev 311543) @@ -2098,29 +2098,17 @@ tptr = temp; - /* 1. Strip any leading space */ - for (;;) { - inc_len = (bptr limit ? (*bptr == '\0' ? 1: php_mblen(bptr, limit - bptr)): 0); - switch (inc_len) { - case -2: -
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/dom/tests/bug54601.phpt branches/PHP_5_3/ext/libxml/libxml.c branches/PHP_5_4/ext/dom/tests/bug54601.phpt branches/PHP_5_4/ext/l
bjoriSun, 29 May 2011 11:39:49 + Revision: http://svn.php.net/viewvc?view=revisionrevision=311544 Log: Fixed bug #54601 (Removing the doctype node segfaults) Bug: http://bugs.php.net/54601 (Assigned) Removing the doctype node segfaults Changed paths: U php/php-src/branches/PHP_5_3/NEWS A php/php-src/branches/PHP_5_3/ext/dom/tests/bug54601.phpt U php/php-src/branches/PHP_5_3/ext/libxml/libxml.c A php/php-src/branches/PHP_5_4/ext/dom/tests/bug54601.phpt U php/php-src/branches/PHP_5_4/ext/libxml/libxml.c A php/php-src/trunk/ext/dom/tests/bug54601.phpt U php/php-src/trunk/ext/libxml/libxml.c Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-05-29 10:23:06 UTC (rev 311543) +++ php/php-src/branches/PHP_5_3/NEWS 2011-05-29 11:39:49 UTC (rev 311544) @@ -91,6 +91,7 @@ libraries). (Clint Byrum, Raphael) - libxml extension: + . Fixed bug #54601 (Removing the doctype node segfaults). (Hannes) . Fixed bug #54440 (libxml extension ignores default context). (Gustavo) - mbstring extension: Added: php/php-src/branches/PHP_5_3/ext/dom/tests/bug54601.phpt === --- php/php-src/branches/PHP_5_3/ext/dom/tests/bug54601.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/dom/tests/bug54601.phpt2011-05-29 11:39:49 UTC (rev 311544) @@ -0,0 +1,30 @@ +--TEST-- +Segfault when removing the Doctype node +--SKIPIF-- +?php require_once('skipif.inc'); ? +--FILE-- +?php +$xml = XML +?xml version='1.0' encoding='utf-8' ? +!DOCTYPE set PUBLIC -//OASIS//DTD DocBook XML V5.0//EN http://www.docbook.org/xml/5.0/dtd/docbook.dtd; [ +!ENTITY foo 'foofootext/foo' +!ENTITY bar 'barbartext/bar' +] +setfoo;bar;/set +XML; + +$doc = new DOMDocument(); +$doc-loadXML($xml, LIBXML_NOENT); +$n = $doc-doctype; +$doc-removeChild($n); +var_dump($n); +print $doc-saveXML(); +? +===DONE=== +?php exit(0); ? +--EXPECTF-- +object(DOMDocumentType)#%d (0) { +} +?xml version=1.0 encoding=utf-8? +setfoofootext/foobarbartext/bar/set +===DONE=== Modified: php/php-src/branches/PHP_5_3/ext/libxml/libxml.c === --- php/php-src/branches/PHP_5_3/ext/libxml/libxml.c2011-05-29 10:23:06 UTC (rev 311543) +++ php/php-src/branches/PHP_5_3/ext/libxml/libxml.c2011-05-29 11:39:49 UTC (rev 311544) @@ -222,6 +222,7 @@ switch (node-type) { /* Skip property freeing for the following types */ case XML_NOTATION_NODE: + case XML_ENTITY_DECL: break; case XML_ENTITY_REF_NODE: php_libxml_node_free_list((xmlNodePtr) node-properties TSRMLS_CC); @@ -233,7 +234,6 @@ case XML_ATTRIBUTE_DECL: case XML_DTD_NODE: case XML_DOCUMENT_TYPE_NODE: - case XML_ENTITY_DECL: case XML_NAMESPACE_DECL: case XML_TEXT_NODE: php_libxml_node_free_list(node-children TSRMLS_CC); Added: php/php-src/branches/PHP_5_4/ext/dom/tests/bug54601.phpt === --- php/php-src/branches/PHP_5_4/ext/dom/tests/bug54601.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/dom/tests/bug54601.phpt2011-05-29 11:39:49 UTC (rev 311544) @@ -0,0 +1,30 @@ +--TEST-- +Segfault when removing the Doctype node +--SKIPIF-- +?php require_once('skipif.inc'); ? +--FILE-- +?php +$xml = XML +?xml version='1.0' encoding='utf-8' ? +!DOCTYPE set PUBLIC -//OASIS//DTD DocBook XML V5.0//EN http://www.docbook.org/xml/5.0/dtd/docbook.dtd; [ +!ENTITY foo 'foofootext/foo' +!ENTITY bar 'barbartext/bar' +] +setfoo;bar;/set +XML; + +$doc = new DOMDocument(); +$doc-loadXML($xml, LIBXML_NOENT); +$n = $doc-doctype; +$doc-removeChild($n); +var_dump($n); +print $doc-saveXML(); +? +===DONE=== +?php exit(0); ? +--EXPECTF-- +object(DOMDocumentType)#%d (0) { +} +?xml version=1.0 encoding=utf-8? +setfoofootext/foobarbartext/bar/set +===DONE=== Modified: php/php-src/branches/PHP_5_4/ext/libxml/libxml.c === --- php/php-src/branches/PHP_5_4/ext/libxml/libxml.c2011-05-29 10:23:06 UTC (rev 311543) +++ php/php-src/branches/PHP_5_4/ext/libxml/libxml.c2011-05-29 11:39:49 UTC (rev 311544) @@ -224,6 +224,7 @@ switch (node-type) { /* Skip property freeing for the following types */ case XML_NOTATION_NODE:
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/standard/tests/streams/bug54946.phpt branches/PHP_5_3/main/streams/streams.c branches/PHP_5_4/ext/standard/tests/streams/bug5494
bjoriSun, 29 May 2011 12:29:19 + Revision: http://svn.php.net/viewvc?view=revisionrevision=311545 Log: Fixed bug #54946 (stream_get_contents infinite loop) Bug: http://bugs.php.net/54946 (Open) stream_get_contents infinite loop Changed paths: U php/php-src/branches/PHP_5_3/NEWS A php/php-src/branches/PHP_5_3/ext/standard/tests/streams/bug54946.phpt U php/php-src/branches/PHP_5_3/main/streams/streams.c A php/php-src/branches/PHP_5_4/ext/standard/tests/streams/bug54946.phpt U php/php-src/branches/PHP_5_4/main/streams/streams.c A php/php-src/trunk/ext/standard/tests/streams/bug54946.phpt U php/php-src/trunk/main/streams/streams.c Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-05-29 11:39:49 UTC (rev 311544) +++ php/php-src/branches/PHP_5_3/NEWS 2011-05-29 12:29:19 UTC (rev 311545) @@ -151,6 +151,7 @@ (Felipe) - Streams: + . Fixed bug #54946 (stream_get_contents infinite loop). (Hannes) . Fixed bug #54623 (Segfault when when writing to a persistent socket after closing a copy of the socket). (Gustavo) Added: php/php-src/branches/PHP_5_3/ext/standard/tests/streams/bug54946.phpt === --- php/php-src/branches/PHP_5_3/ext/standard/tests/streams/bug54946.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/streams/bug54946.phpt 2011-05-29 12:29:19 UTC (rev 311545) @@ -0,0 +1,40 @@ +--TEST-- +Bug#54946 stream_get_contents infinite loop +--FILE-- +?php +$filename = tempnam(sys_get_temp_dir(), phpbug); + +$stream = fopen($filename, w); // w or a +$retval = stream_get_contents($stream, 1, 1); + +var_dump($retval); +unlink($filename); + + + +$filename = tempnam(sys_get_temp_dir(), phpbug2); + +$stream = fopen($filename, a); +$retval = stream_get_contents($stream, 1, 1); + +var_dump($retval); +unlink($filename); + + + +$filename = tempnam(sys_get_temp_dir(), phpbug3); + +$stream = fopen($filename, a); +fseek($stream, 1); +$retval = stream_get_contents($stream, 1); + +var_dump($retval); +unlink($filename); +? +===DONE=== +--EXPECT-- +string(0) +string(0) +string(0) +===DONE=== + Modified: php/php-src/branches/PHP_5_3/main/streams/streams.c === --- php/php-src/branches/PHP_5_3/main/streams/streams.c 2011-05-29 11:39:49 UTC (rev 311544) +++ php/php-src/branches/PHP_5_3/main/streams/streams.c 2011-05-29 12:29:19 UTC (rev 311545) @@ -1291,6 +1291,9 @@ ptr = *buf = pemalloc_rel_orig(maxlen + 1, persistent); while ((len maxlen) !php_stream_eof(src)) { ret = php_stream_read(src, ptr, maxlen - len); + if (!ret) { + break; + } len += ret; ptr += ret; } Added: php/php-src/branches/PHP_5_4/ext/standard/tests/streams/bug54946.phpt === --- php/php-src/branches/PHP_5_4/ext/standard/tests/streams/bug54946.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/standard/tests/streams/bug54946.phpt 2011-05-29 12:29:19 UTC (rev 311545) @@ -0,0 +1,40 @@ +--TEST-- +Bug#54946 stream_get_contents infinite loop +--FILE-- +?php +$filename = tempnam(sys_get_temp_dir(), phpbug); + +$stream = fopen($filename, w); // w or a +$retval = stream_get_contents($stream, 1, 1); + +var_dump($retval); +unlink($filename); + + + +$filename = tempnam(sys_get_temp_dir(), phpbug2); + +$stream = fopen($filename, a); +$retval = stream_get_contents($stream, 1, 1); + +var_dump($retval); +unlink($filename); + + + +$filename = tempnam(sys_get_temp_dir(), phpbug3); + +$stream = fopen($filename, a); +fseek($stream, 1); +$retval = stream_get_contents($stream, 1); + +var_dump($retval); +unlink($filename); +? +===DONE=== +--EXPECT-- +string(0) +string(0) +string(0) +===DONE=== + Modified: php/php-src/branches/PHP_5_4/main/streams/streams.c === --- php/php-src/branches/PHP_5_4/main/streams/streams.c 2011-05-29 11:39:49 UTC (rev 311544) +++ php/php-src/branches/PHP_5_4/main/streams/streams.c 2011-05-29 12:29:19 UTC (rev 311545) @@ -1362,6 +1362,9 @@ ptr = *buf = pemalloc_rel_orig(maxlen + 1, persistent); while ((len maxlen) !php_stream_eof(src)) { ret = php_stream_read(src, ptr, maxlen - len); + if (!ret) { + break; + } len += ret; ptr += ret; } Added: php/php-src/trunk/ext/standard/tests/streams/bug54946.phpt