unix: Use syscall.SysctlRaw in Sysctl

Remove redundant code

Fixes golang/go#18053

Change-Id: Ic8a2b85819ce86e5ebf2cc6274c604fdb69a5495
Reviewed-on: https://go-review.googlesource.com/33612
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/unix/syscall_bsd.go b/unix/syscall_bsd.go
index e967176..ccb29c7 100644
--- a/unix/syscall_bsd.go
+++ b/unix/syscall_bsd.go
@@ -470,25 +470,11 @@
 }
 
 func SysctlArgs(name string, args ...int) (string, error) {
-	mib, err := sysctlmib(name, args...)
+	buf, err := SysctlRaw(name, args...)
 	if err != nil {
 		return "", err
 	}
-
-	// Find size.
-	n := uintptr(0)
-	if err := sysctl(mib, nil, &n, nil, 0); err != nil {
-		return "", err
-	}
-	if n == 0 {
-		return "", nil
-	}
-
-	// Read into buffer of that size.
-	buf := make([]byte, n)
-	if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
-		return "", err
-	}
+	n := len(buf)
 
 	// Throw away terminating NUL.
 	if n > 0 && buf[n-1] == '\x00' {