From: Rob Pike Date: Sat, 7 Feb 2009 01:10:30 +0000 (-0800) Subject: fstat used wrong system call, lstat used wrong type of name X-Git-Tag: weekly.2009-11-06~2214 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=69c41d7f5f965ba8e4f6dea5b6cdbeb348f13ba1;p=gostls13.git fstat used wrong system call, lstat used wrong type of name R=rsc DELTA=7 (4 added, 0 deleted, 3 changed) OCL=24617 CL=24617 --- diff --git a/src/lib/syscall/file_darwin.go b/src/lib/syscall/file_darwin.go index f3e6c3163c..d89752dc0a 100644 --- a/src/lib/syscall/file_darwin.go +++ b/src/lib/syscall/file_darwin.go @@ -65,13 +65,17 @@ func Stat(name string, buf *Stat_t) (ret int64, errno int64) { return r1, err; } -func Lstat(name *byte, buf *Stat_t) (ret int64, errno int64) { - r1, r2, err := Syscall(SYS_LSTAT, int64(uintptr(unsafe.Pointer(name))), int64(uintptr(unsafe.Pointer(buf))), 0); +func Lstat(name string, buf *Stat_t) (ret int64, errno int64) { + var namebuf [nameBufsize]byte; + if !StringToBytes(namebuf, name) { + return -1, ENAMETOOLONG + } + r1, r2, err := Syscall(SYS_LSTAT64, int64(uintptr(unsafe.Pointer(&namebuf[0]))), int64(uintptr(unsafe.Pointer(buf))), 0); return r1, err; } func Fstat(fd int64, buf *Stat_t) (ret int64, errno int64) { - r1, r2, err := Syscall(SYS_FSTAT, fd, int64(uintptr(unsafe.Pointer(buf))), 0); + r1, r2, err := Syscall(SYS_FSTAT64, fd, int64(uintptr(unsafe.Pointer(buf))), 0); return r1, err; }