This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 12 Dec 2014 10:32, Eric Rannaud wrote: > Both open and openat load their last argument 'mode' lazily, using > va_arg() only if O_CREAT is found in oflag. This is wrong, mode is also > necessary if O_TMPFILE is in oflag. > > By chance on x86_64, the problem wasn't evident when using O_TMPFILE > with open, as the 3rd argument of open, even when not loaded with > va_arg, is left untouched in RDX, where the syscall expects it. > > However, openat was not so lucky, and O_TMPFILE couldn't be used: mode > is the 4th argument, in RCX, but the syscall expects its 4th argument in > a different register than the glibc wrapper, in R10. > > Introduce a macro __OPEN_NEEDS_MODE (oflag) to test if either O_CREAT or > O_TMPFILE is set in oflag. lgtm. since master is open again, guess should be easy to merge. -mike
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |