Created attachment 1151054[details]
reproducer and test program
Description of problem:
The RHEL Server for ARM kernel is based on upstream kernel-4.5.0, and this kernel adds a new O_TMPFILE flag to the open() and openat() syscalls. glibc needs an update to support setting the file permissions when using O_TMPFILE without O_CREAT. See upstream bug
https://sourceware.org/bugzilla/show_bug.cgi?id=17523
Attached are two patches that (1) define O_TMPFILE and (2) update the open() and openat() syscall wrappers to support the mode.
Version-Release number of selected component (if applicable):
glibc-2.17-105.el7
How reproducible:
always
Steps to Reproduce:
1. on a 64-bit ARM system, compile and run the attached o_tmpfile.c test program
Actual results:
~]# ./a.out
/proc/self/fd/3 -> /root/#201425340 (deleted) file created with O_TMPFILE
/proc/self/fd/3 has mode 00
FAIL: mode is not 0600
Expected results:
~]# ./a.out
/proc/self/fd/3 -> /root/#201867825 (deleted) file created with O_TMPFILE
/proc/self/fd/3 has mode 0600
Additional info:
The problem was originally discovered by LTP's openat03 and open14 tests. This is another method to reproduce and test the bug.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHSA-2017:1916