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: [glibc PATCH] fcntl: put F_OFD_* constants under #ifdef __USE_FILE_OFFSET64


On Wed, 2016-08-17 at 19:34 +0200, Florian Weimer wrote:
> On 08/17/2016 04:47 PM, Jeff Layton wrote:
> > 
> > The Linux kernel expects a flock64 structure whenever you use OFD locks
> > with fcntl64. Unfortunately, you can currently build a 32-bit program
> > that passes in a struct flock when it calls fcntl64.
> > 
> > Only define the F_OFD_* constants when __USE_FILE_OFFSET64 is also
> > defined, so that the build fails in this situation rather than
> > producing a broken binary.
> 
> Doesn't this affect legacy POSIX-style locks as well, under very similar 
> circumstances?
> 
> 

No. The kernel will decide which type of struct it is based on whether
userland passes in F_SETLK or F_SETLK64. Since the older flock struct
is considered a legacy interface, I didn't plumb that in when I did
these patches originally. With my 20/20 hindsight, I probably should
have just done that, but it's a little late now...
-- 
Jeff Layton <jlayton@redhat.com>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]