Skip to content

Commit

Permalink
Fix seeking in php://input
Browse files Browse the repository at this point in the history
  • Loading branch information
Metabolix authored and nikic committed Jan 18, 2019
1 parent 32ae716 commit dbe7f2a
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ext/standard/php_fopen_wrapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ static int php_stream_input_seek(php_stream *stream, zend_off_t offset, int when

if (input->body) {
int sought = php_stream_seek(input->body, offset, whence);
*newoffset = (input->body)->position;
*newoffset = input->position = (input->body)->position;
return sought;
}

Expand Down
34 changes: 34 additions & 0 deletions tests/basic/enable_post_data_reading_07.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
--TEST--
enable_post_data_reading: seeking in php://input
--INI--
enable_post_data_reading=1
--POST_RAW--
Content-Type: application/unknown
0123456789
--FILE--
<?php
echo "Test\n";

$f1 = fopen("php://input", "r");
fseek($f1, 3, SEEK_SET);
echo fgetc($f1);
fseek($f1, 1, SEEK_SET);
echo fgetc($f1);
fseek($f1, 3, SEEK_CUR);
echo fgetc($f1);
fseek($f1, -3, SEEK_CUR);
echo fgetc($f1);
fseek($f1, 3, SEEK_END);
echo fgetc($f1);
fseek($f1, -3, SEEK_END);
$f2 = fopen("php://input", "r");
fseek($f2, 1, SEEK_SET);
echo fgetc($f1);
echo fgetc($f2);
?>

Done
--EXPECT--
Test
315371
Done

0 comments on commit dbe7f2a

Please sign in to comment.