aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2016-10-27 20:55:55 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-10-27 20:55:55 +0200
commit47ffb5d95eb5c5514dae306b7c8e4308f1f001a2 (patch)
tree4ea39a1246fa9188aec95ff3d20641e31b04f656
parent4ce7157987f7d14279fe9c969f248ffc892cddf6 (diff)
downloadgcc-47ffb5d95eb5c5514dae306b7c8e4308f1f001a2.zip
gcc-47ffb5d95eb5c5514dae306b7c8e4308f1f001a2.tar.gz
gcc-47ffb5d95eb5c5514dae306b7c8e4308f1f001a2.tar.bz2
PR70975 Pass valid offset argument to sendfile
PR libstdc++/70975 * src/filesystem/ops.cc (do_copy_file) [_GLIBCXX_USE_SENDFILE]: Pass non-null pointer to sendfile for offset argument. From-SVN: r241629
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/src/filesystem/ops.cc3
2 files changed, 8 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 50f5837..6a06101 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR libstdc++/70975
+ * src/filesystem/ops.cc (do_copy_file) [_GLIBCXX_USE_SENDFILE]:
+ Pass non-null pointer to sendfile for offset argument.
+
2016-10-27 Jonathan Wakely <jwakely@redhat.com>
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
index 9abcee0..8ed0a105 100644
--- a/libstdc++-v3/src/filesystem/ops.cc
+++ b/libstdc++-v3/src/filesystem/ops.cc
@@ -444,7 +444,8 @@ namespace
}
#ifdef _GLIBCXX_USE_SENDFILE
- const auto n = ::sendfile(out.fd, in.fd, nullptr, from_st->st_size);
+ off_t offset = 0;
+ const auto n = ::sendfile(out.fd, in.fd, &offset, from_st->st_size);
if (n < 0 && (errno == ENOSYS || errno == EINVAL))
{
#endif