diff options
author | Remi Collet <remi@php.net> | 2013-04-02 16:24:14 +0200 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2013-04-02 16:24:14 +0200 |
commit | ce89bc8743801a9d4997d0781d4bc48dd805e94b (patch) | |
tree | 5d4343834a47cf45508ed61bb9e2e262d27dd8c0 /main/streams | |
parent | 23b44e7f39c8a162feb4976151d1ce4badbaba67 (diff) | |
parent | 8e8a75444cbb6bb108e212d48513343fe21c9255 (diff) | |
download | php-git-ce89bc8743801a9d4997d0781d4bc48dd805e94b.tar.gz |
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
fix comment
Fixed Bug #64565 copy doesn't report failure on partial copy
Diffstat (limited to 'main/streams')
-rw-r--r-- | main/streams/streams.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c index 4163c5b392..1fae2e91ce 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -1489,7 +1489,7 @@ PHPAPI int _php_stream_copy_to_stream_ex(php_stream *src, php_stream *dest, size char buf[CHUNK_SIZE]; size_t readchunk; size_t haveread = 0; - size_t didread; + size_t didread, didwrite, towrite; size_t dummy; php_stream_statbuf ssbuf; @@ -1524,16 +1524,14 @@ PHPAPI int _php_stream_copy_to_stream_ex(php_stream *src, php_stream *dest, size p = php_stream_mmap_range(src, php_stream_tell(src), maxlen, PHP_STREAM_MAP_MODE_SHARED_READONLY, &mapped); if (p) { - mapped = php_stream_write(dest, p, mapped); + didwrite = php_stream_write(dest, p, mapped); php_stream_mmap_unmap_ex(src, mapped); - *len = mapped; + *len = didwrite; - /* we've got at least 1 byte to read. - * less than 1 is an error */ - - if (mapped > 0) { + /* read bytes match written */ + if (mapped == didwrite) { return SUCCESS; } return FAILURE; @@ -1551,7 +1549,6 @@ PHPAPI int _php_stream_copy_to_stream_ex(php_stream *src, php_stream *dest, size if (didread) { /* extra paranoid */ - size_t didwrite, towrite; char *writeptr; towrite = didread; |