Merge pull request #5939 from JonnyH/WIP/broken-fstream-copy

Try to fix File::Copy with non-1024-byte aligned sizes
This commit is contained in:
Markus Wick 2017-08-21 17:01:16 +02:00 committed by GitHub
commit 8280d15357
1 changed files with 2 additions and 2 deletions

View File

@ -358,7 +358,7 @@ bool Copy(const std::string& srcFilename, const std::string& destFilename)
while (!input.eof()) while (!input.eof())
{ {
// read input // read input
input.read(buffer, BSIZE); auto read_size = input.readsome(buffer, BSIZE);
if (!input) if (!input)
{ {
ERROR_LOG(COMMON, "Copy: failed reading from source, %s --> %s", srcFilename.c_str(), ERROR_LOG(COMMON, "Copy: failed reading from source, %s --> %s", srcFilename.c_str(),
@ -367,7 +367,7 @@ bool Copy(const std::string& srcFilename, const std::string& destFilename)
} }
// write output // write output
if (!output.WriteBytes(buffer, BSIZE)) if (!output.WriteBytes(buffer, read_size))
{ {
ERROR_LOG(COMMON, "Copy: failed writing to output, %s --> %s: %s", srcFilename.c_str(), ERROR_LOG(COMMON, "Copy: failed writing to output, %s --> %s: %s", srcFilename.c_str(),
destFilename.c_str(), LastStrerrorString().c_str()); destFilename.c_str(), LastStrerrorString().c_str());