diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2019-06-25 14:06:14 +0200 |
---|---|---|
committer | Tobias Klauser <tobias.klauser@gmail.com> | 2019-06-26 06:27:56 +0000 |
commit | 9bf62783d2fc3804fd31f68092e779ef52f26cf9 (patch) | |
tree | f51c3d95a1d81816dba82e918ec3de2e93060059 | |
parent | adf888376deb749bc95a2717989eb0f2db001f8d (diff) | |
download | go-9bf62783d2fc3804fd31f68092e779ef52f26cf9.tar.gz go-9bf62783d2fc3804fd31f68092e779ef52f26cf9.zip |
syscall: fix nil pointer dereference in Getdirentries on 32-bit freebsd 12
Don't attempt to dereference basep if it's nil, just pass it to
getdirentries_freebsd12 as is.
Ported from x/sys/unix CL 183223
Change-Id: Id1c4e0eb6ff36dd39524da8194fed9a5957bce61
Reviewed-on: https://go-review.googlesource.com/c/go/+/183797
Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r-- | src/syscall/syscall_freebsd.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/syscall/syscall_freebsd.go b/src/syscall/syscall_freebsd.go index eecae8de30..eb7208f5cc 100644 --- a/src/syscall/syscall_freebsd.go +++ b/src/syscall/syscall_freebsd.go @@ -267,7 +267,7 @@ func Fstatfs(fd int, st *Statfs_t) (err error) { func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { if supportsABI(_ino64First) { - if unsafe.Sizeof(*basep) == 8 { + if basep == nil || unsafe.Sizeof(*basep) == 8 { return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) } // The freebsd12 syscall needs a 64-bit base. On 32-bit machines |