diff options
| author | Joshua Rogers <git@internot.info> | 2015-01-28 00:18:17 +1100 |
|---|---|---|
| committer | Joshua Rogers <git@internot.info> | 2015-02-01 18:47:09 +1100 |
| commit | f8bf646fc41c26b010c2db7d36a3c430d5911324 (patch) | |
| tree | aeed1f28c9c4cabd93590582fbdf635efdb2c24a /main/streams/plain_wrapper.c | |
| parent | dfe6aea9cab6df556049ec2c9867d97a97e0fe09 (diff) | |
| download | php-git-f8bf646fc41c26b010c2db7d36a3c430d5911324.tar.gz | |
do_fstat changes
Check return values of 'do_fstat' function in all places.
Diffstat (limited to 'main/streams/plain_wrapper.c')
| -rw-r--r-- | main/streams/plain_wrapper.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 284ba05ea8..652438efc9 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; } |
