syscall: ensure openat uses variadic libc wrapper

On powerpc64le, this caused a failure in TestUnshareUidGidMapping
due to stack corruption which resulted in a bogus execve syscall.

Use the existing c wrapper to ensure we respect the ppc abi for
variadic functions.

Fixes PR go/98610

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/282717
This commit is contained in:
Paul E. Murphy 2021-01-08 15:43:54 -06:00 committed by Ian Lance Taylor
parent 5a9cfad2de
commit cfaaa6a1ca
2 changed files with 2 additions and 2 deletions

View File

@ -1,4 +1,4 @@
a2578eb3983514641f0baf44d27d6474d3a96758
255657dc8d61ab26121ca68f124412ef37599166
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -20,7 +20,7 @@ import (
//mount(source *byte, target *byte, fstype *byte, flags _C_long, data *byte) _C_int
//sysnb rawOpenat(dirfd int, pathname *byte, flags int, perm uint32) (fd int, err Errno)
//openat(dirfd _C_int, pathname *byte, flags _C_int, perm Mode_t) _C_int
//__go_openat(dirfd _C_int, pathname *byte, flags _C_int, perm Mode_t) _C_int
// SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux.
// See user_namespaces(7).