unix: 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.

Change-Id: I043a9ee9262e6333c35fd9ecc52694c8fd2de9f6
Reviewed-on: https://go-review.googlesource.com/c/sys/+/183223
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Yuval Pavel Zholkover <paulzhol@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/unix/syscall_freebsd.go b/unix/syscall_freebsd.go
index c0dbbc6..c9c802d 100644
--- a/unix/syscall_freebsd.go
+++ b/unix/syscall_freebsd.go
@@ -362,7 +362,7 @@
 
 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