HomeFreeBSD

Fix emulation of the fcntl64() syscall. In Linux, this is exactly
rS107680Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Fix emulation of the fcntl64() syscall. In Linux, this is exactly
the same as fcntl() except that it supports the new 64-bit file
locking commands (LINUX_F_GETLK64 etc) that use the `flock64'
structure. We had been interpreting all flock structures passed to
fcntl64() as `struct flock64' instead of only the ones from F_*64
commands.

The glibc in linux_base-7 uses fcntl64() by default, but the bug
was often non-fatal since the misinterpretation typically only
causes junk to appear in the `l_len' field and most junk values are
accepted as valid range lengths. The result is occasional EINVAL
errors from F_SETLK and a few bytes after the supplied `struct
flock' getting clobbered during F_GETLK.

PR: kern/37656
Reviewed by: marcel
Approved by: re
MFC after: 1 week

Details

Provenance
iedowseAuthored on
Parents
rS107679: Correct alphabetization of awi entry.
Branches
Unknown
Tags
Unknown

Event Timeline