PR70975 Pass valid offset argument to sendfile
authorUros Bizjak <ubizjak@gmail.com>
Thu, 27 Oct 2016 18:55:55 +0000 (20:55 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 27 Oct 2016 18:55:55 +0000 (20:55 +0200)
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

libstdc++-v3/ChangeLog
libstdc++-v3/src/filesystem/ops.cc

index 50f58379daa5fdb1b4ce71b30e51050f536c40db..6a061010eb50c4ebc1f89ae621906c13c0c43b4b 100644 (file)
@@ -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/
index 9abcee0ea9b7829dd3565e6945e2aff13797fb36..8ed0a105dfa3a78525a620f612dbb398c4797e71 100644 (file)
@@ -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