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;
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) {
+ if (mapped == didwrite) {
return SUCCESS;
}
return FAILURE;
if (didread) {
/* extra paranoid */
- size_t didwrite, towrite;
char *writeptr;
towrite = didread;