From 9312ec54dbf8031f4d23c6fc400c1ca27e3f9d1f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 12 Jul 2017 18:41:35 -0700 Subject: Fix QAbstractFileEngine::clone misuse QFile::copy was assuming that the target file was native and therefore it could simply take the file descriptor to clone. While that was not currently a problem, in theory it could be as we do have one writeable file engine besides QFSFileEngine (QWinRTFileEngine). By refactoring to take the parameter as a QAbstractFileEngine, we can ensure that the target file is a native file. Change-Id: Ib7a1737987bf4c4a8c51fffd14d0c048fd509025 Reviewed-by: Oswald Buddenhagen Reviewed-by: Lars Knoll --- src/corelib/io/qfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/corelib/io/qfile.cpp') diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index 5b487a1339..d32c2ed9fd 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -804,7 +804,7 @@ QFile::copy(const QString &newName) close(); d->setError(QFile::CopyError, tr("Cannot open for output")); } else { - if (!out.d_func()->engine()->clone(d->engine()->handle())) { + if (!d->engine()->cloneTo(out.d_func()->engine())) { char block[4096]; qint64 totalRead = 0; while (!atEnd()) { -- cgit v1.2.3