Bug #55510 [Ver->Csd]: $_FILES 'name' missing first character after upload.
| From: | arpad@php.net | Date: | Mon, 29 Aug 2011 21:12:00 +0000 |
| Subject: | Bug #55510 [Ver->Csd]: $_FILES 'name' missing first character after upload. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-163119@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=55510&edit=1
ID: 55510
Updated by: arpad@php.net
Reported by: aaron at gwmicro dot com
Summary: $_FILES 'name' missing first character after upload.
-Status: Verified
+Status: Closed
Type: Bug
Package: Filesystem function related
Operating System: Windows Server 2008 R2
PHP Version: 5.3.8
-Assigned To:
+Assigned To: arpad
Block user comment: N
Private report: N
New Comment:
This bug has been fixed in SVN.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
For Windows:
http://windows.php.net/snapshots/
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2011-08-29 21:10:56] arpad@php.net
Automatic comment from SVN on behalf of arpad
Revision: http://svn.php.net/viewvc/?view=revision&revision=315742
Log: fix #55510: $_FILES 'name' missing first character after upload
------------------------------------------------------------------------
[2011-08-29 02:46:06] arpad@php.net
This bug is present on Windows with magic_quotes_gpc on. "s" is then always set and the
change in r312103 means the leading char is skipped.
------------------------------------------------------------------------
[2011-08-29 02:43:24] arpad@php.net
The following patch has been added/updated:
Patch Name: fix-upload-win-mqgpc-bug-55510.patch
Revision: 1314585804
URL: https://bugs.php.net/patch-display.php?bug=55510&patch=fix-upload-win-mqgpc-bug-55510.patch&revision=1314585804
------------------------------------------------------------------------
[2011-08-28 17:38:32] aaron at gwmicro dot com
I started going back version by version from 5.3.8 to see where the problem started, and it seems to
have begun with 5.3.7, as 5.3.6 works correctly. Once again, I'm just replacing PHP builds --
I'm not modifying any else. With 5.3.6, I get back what I would expect:
array(1) { ["filename"]=> array(5) { ["name"]=> string(10)
"readme.txt" ["type"]=> string(10) "text/plain"
["tmp_name"]=> string(31) "C:\temp\file_upload\php594F.tmp"
["error"]=> int(0) ["size"]=> int(22) } }
With 5.3.7 and 5.3.8, I get back the missing first letter:
array(1) { ["filename"]=> array(5) { ["name"]=> string(10)
"eadme.txt" ["type"]=> string(10) "text/plain"
["tmp_name"]=> string(31) "C:\temp\file_upload\php594F.tmp"
["error"]=> int(0) ["size"]=> int(22) } }
With 5.4.beta1-dev, I'm back to getting everything that I expect:
array(1) { ["filename"]=> array(5) { ["name"]=> string(10)
"readme.txt" ["type"]=> string(10) "text/plain"
["tmp_name"]=> string(31) "C:\temp\file_upload\php594F.tmp"
["error"]=> int(0) ["size"]=> int(22) } }
------------------------------------------------------------------------
[2011-08-28 17:21:37] aaron at gwmicro dot com
Here are the capture contents using Wireshark and PHP 5.3.8:
No. Time Source Destination Protocol Length Info
1203 7.252093 10.0.0.251 184.18.147.3 HTTP 986 POST
/private/aaron/filename.php HTTP/1.1 (text/plain)
Frame 1203: 986 bytes on wire (7888 bits), 986 bytes captured (7888 bits)
Ethernet II, Src: AsustekC_8e:2f:bb (00:26:18:8e:2f:bb), Dst: 3com_49:bb:06 (00:01:02:49:bb:06)
Internet Protocol Version 4, Src: 10.0.0.251 (10.0.0.251), Dst: 184.18.147.3 (184.18.147.3)
Transmission Control Protocol, Src Port: 65260 (65260), Dst Port: http (80), Seq: 1, Ack: 1, Len:
932
Hypertext Transfer Protocol
MIME Multipart Media Encapsulation, Type: multipart/form-data, Boundary:
"---------------------------9503744825200"
[Type: multipart/form-data]
First boundary: -----------------------------9503744825200\r\n
Encapsulated multipart part: (text/plain)
Content-Disposition: form-data; name="filename";
filename="readme.txt"\r\n
Content-Type: text/plain\r\n\r\n
Line-based text data: text/plain
Hello! This is a test.
Last boundary: \r\n-----------------------------9503744825200--\r\n
No. Time Source Destination Protocol Length Info
1205 7.252782 10.0.0.1 10.0.0.251 HTTP 986 POST
/private/aaron/filename.php HTTP/1.1 (text/plain)
Frame 1205: 986 bytes on wire (7888 bits), 986 bytes captured (7888 bits)
Ethernet II, Src: 3com_49:bb:06 (00:01:02:49:bb:06), Dst: AsustekC_8e:2f:bb (00:26:18:8e:2f:bb)
Internet Protocol Version 4, Src: 10.0.0.1 (10.0.0.1), Dst: 10.0.0.251 (10.0.0.251)
Transmission Control Protocol, Src Port: 65260 (65260), Dst Port: http (80), Seq: 1, Ack: 1, Len:
932
Hypertext Transfer Protocol
MIME Multipart Media Encapsulation, Type: multipart/form-data, Boundary:
"---------------------------9503744825200"
[Type: multipart/form-data]
First boundary: -----------------------------9503744825200\r\n
Encapsulated multipart part: (text/plain)
Content-Disposition: form-data; name="filename";
filename="readme.txt"\r\n
Content-Type: text/plain\r\n\r\n
Line-based text data: text/plain
Hello! This is a test.
Last boundary: \r\n-----------------------------9503744825200--\r\n
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=55510
--
Edit this bug report at https://bugs.php.net/bug.php?id=55510&edit=1