mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
os: fix Root.Mkdir permission bits on OpenBSD
Pass missing mode bits in the mkdirat() syscall wrapper. Fixes #73559 Change-Id: I54b1985bd77b1fe5d1a48acab9f2597f8c931854 GitHub-Last-Rev: 669c17361d86bc9065bb6b47a2d60aa86bcfa12d GitHub-Pull-Request: golang/go#73565 Reviewed-on: https://go-review.googlesource.com/c/go/+/669375 Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Damien Neil <dneil@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
parent
9921537a96
commit
7785528c50
@ -43,7 +43,7 @@ func Mkdirat(dirfd int, path string, mode uint32) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(p)), 0, 0, 0, 0)
|
_, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(p)), uintptr(mode), 0, 0, 0)
|
||||||
if errno != 0 {
|
if errno != 0 {
|
||||||
return errno
|
return errno
|
||||||
}
|
}
|
||||||
|
@ -507,6 +507,12 @@ func TestRootMkdir(t *testing.T) {
|
|||||||
if !fi.IsDir() {
|
if !fi.IsDir() {
|
||||||
t.Fatalf(`stat file created with Root.Mkdir(%q): not a directory`, test.open)
|
t.Fatalf(`stat file created with Root.Mkdir(%q): not a directory`, test.open)
|
||||||
}
|
}
|
||||||
|
if mode := fi.Mode(); mode&0o777 == 0 {
|
||||||
|
// Issue #73559: We're not going to worry about the exact
|
||||||
|
// mode bits (which will have been modified by umask),
|
||||||
|
// but there should be mode bits.
|
||||||
|
t.Fatalf(`stat file created with Root.Mkdir(%q): mode=%v, want non-zero`, test.open, mode)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user