]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: fix nil pointer dereference in Getdirentries on 32-bit freebsd 12
authorTobias Klauser <tklauser@distanz.ch>
Tue, 25 Jun 2019 12:06:14 +0000 (14:06 +0200)
committerTobias Klauser <tobias.klauser@gmail.com>
Wed, 26 Jun 2019 06:27:56 +0000 (06:27 +0000)
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>
src/syscall/syscall_freebsd.go

index eecae8de30d2b5f3c91aaad08dfc58269ad881ee..eb7208f5cc542eb385f4efe2dc620b5f00f32c22 100644 (file)
@@ -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