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]

Re: [PATCH][v4][BZ #17523] linux: open and openat ignore 'mode' with O_TMPFILE in flags


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]