26 lines
779 B
Diff
26 lines
779 B
Diff
|
This fixes <https://sourceware.org/bugzilla/show_bug.cgi?id=18781>
|
||
|
whereby, on 32-bit platforms, libc 2.22 would fail to pass O_LARGEFILE
|
||
|
to 'openat'. This was caught by 'tests/sparse03.at' in the tar
|
||
|
test suite.
|
||
|
|
||
|
commit eb32b0d40308166c4d8f6330cc2958cb1e545075
|
||
|
Author: Andreas Schwab <schwab@suse.de>
|
||
|
Date: Mon Aug 10 14:12:47 2015 +0200
|
||
|
|
||
|
Readd O_LARGEFILE flag for openat64 (bug 18781)
|
||
|
|
||
|
--- a/sysdeps/unix/sysv/linux/openat.c
|
||
|
+++ b/sysdeps/unix/sysv/linux/openat.c
|
||
|
@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int oflag, ...)
|
||
|
va_end (arg);
|
||
|
}
|
||
|
|
||
|
+ /* We have to add the O_LARGEFILE flag for openat64. */
|
||
|
+#ifdef MORE_OFLAGS
|
||
|
+ oflag |= MORE_OFLAGS;
|
||
|
+#endif
|
||
|
+
|
||
|
return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
|
||
|
}
|
||
|
libc_hidden_def (__OPENAT)
|