]> Cypherpunks.ru repositories - gostls13.git/commit
syscall: fix Getdirentries on 32-bit freebsd 12
authorKeith Randall <keithr@alum.mit.edu>
Sat, 8 Jun 2019 16:57:59 +0000 (12:57 -0400)
committerKeith Randall <khr@golang.org>
Mon, 10 Jun 2019 16:18:32 +0000 (16:18 +0000)
commitdaf944a531fecf2431b60da608e70680f4927412
tree2b8041f4ee6da222304e271b9c11b2ec93f5aafc
parentec3ebf7bc31271b52c82b3fac193139b2788ed68
syscall: fix Getdirentries on 32-bit freebsd 12

On freebsd 12, the system call for getdirentries writes 64 bits to
*basep, even on 32-bit systems. Accomodate that by providing a uint64
to the system call and copy the base to/from that uint64.
The uint64 seems to be a virtual file offset, so failing if the high
bits are not zero should be fine for reasonable-sized directories.

Fixes #32498

Change-Id: Ie22c0d301c6091bd20e813432928b24ab95cc314
Reviewed-on: https://go-review.googlesource.com/c/go/+/181377
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/syscall/syscall_freebsd.go
src/syscall/zsyscall_freebsd_386.go
src/syscall/zsyscall_freebsd_amd64.go
src/syscall/zsyscall_freebsd_arm.go