Page MenuHomeFreeBSD

Fix 64-bit system call argument fetching for 32-bit Linux compat.
ClosedPublic

Authored by markj on Jan 16 2020, 7:17 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 18 2024, 1:15 PM
Unknown Object (File)
Jan 15 2024, 3:52 PM
Unknown Object (File)
Jan 5 2024, 5:41 PM
Unknown Object (File)
Dec 20 2023, 1:53 AM
Unknown Object (File)
Sep 11 2023, 6:03 PM
Unknown Object (File)
Sep 7 2023, 2:27 PM
Unknown Object (File)
Sep 7 2023, 2:26 PM
Unknown Object (File)
Sep 7 2023, 2:25 PM
Subscribers

Details

Summary

The Linux32 system call argument fetcher places each argument (passed in
registers in the Linux x86 system call convention) into an entry in the
generic system call args array. Each member of this array is 8 bytes
wide, so this approach is broken for system calls that take off_t
arguments.

Fix the problem by splitting l_loff_t arguments in the 32-bit system
call descriptions, the same as we do for FreeBSD32. Change entry points
to handle this using the PAIR32TO64 macro.

Move linux_ftruncate64() into compat/linux, I'm not sure why it wasn't
there before.

PR: 243155

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable