summaryrefslogtreecommitdiff
path: root/main/streams/plain_wrapper.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2015-02-01 00:56:27 -0800
committerStanislav Malyshev <stas@php.net>2015-02-01 00:56:27 -0800
commitc752e1b786b2bef249cf7bcd089f9a78d3faf8e2 (patch)
treedf44daca5da0425da82d029283bf0ab28d65756d /main/streams/plain_wrapper.c
parentb3efc0fb6ad6a9c04b1b8fd66f5180ff30901f25 (diff)
parentf8bf646fc41c26b010c2db7d36a3c430d5911324 (diff)
downloadphp-git-c752e1b786b2bef249cf7bcd089f9a78d3faf8e2.tar.gz
Merge branch 'pull-request/1032'
* pull-request/1032: do_fstat changes
Diffstat (limited to 'main/streams/plain_wrapper.c')
-rw-r--r--main/streams/plain_wrapper.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
index 7f4a1901e1..fe256b767e 100644
--- a/main/streams/plain_wrapper.c
+++ b/main/streams/plain_wrapper.c
@@ -577,9 +577,10 @@ static int php_stdiop_stat(php_stream *stream, php_stream_statbuf *ssb)
php_stdio_stream_data *data = (php_stdio_stream_data*) stream->abstract;
assert(data != NULL);
+ if((ret = do_fstat(data, 1)) == 0) {
+ memcpy(&ssb->sb, &data->sb, sizeof(ssb->sb));
+ }
- ret = do_fstat(data, 1);
- memcpy(&ssb->sb, &data->sb, sizeof(ssb->sb));
return ret;
}
@@ -669,7 +670,9 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void
return fd == -1 ? PHP_STREAM_OPTION_RETURN_ERR : PHP_STREAM_OPTION_RETURN_OK;
case PHP_STREAM_MMAP_MAP_RANGE:
- do_fstat(data, 1);
+ if(do_fstat(data, 1) != 0) {
+ return PHP_STREAM_OPTION_RETURN_ERR;
+ }
if (range->length == 0 && range->offset > 0 && range->offset < data->sb.st_size) {
range->length = data->sb.st_size - range->offset;
}