summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-02-06 17:10:30 -0800
committerRob Pike <r@golang.org>2009-02-06 17:10:30 -0800
commit3669adf2ff20dc664fd2f4d8cf77063d92dbc09a (patch)
treeb1a0c4ad7b0fe6726dfea8b8cc79b4c2610eb072 /src
parent90d0098e22561ef9f6bf98ad02e456fdd251829a (diff)
downloadgolang-3669adf2ff20dc664fd2f4d8cf77063d92dbc09a.tar.gz
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
Diffstat (limited to 'src')
-rw-r--r--src/lib/syscall/file_darwin.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/syscall/file_darwin.go b/src/lib/syscall/file_darwin.go
index f3e6c3163..d89752dc0 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;
}