mirror of https://github.com/golang/go.git
syscall: restore original NOFILE rlimit in child process
If we increased the NOFILE rlimit when starting the program, restore the original rlimit when forking a child process. For #46279 Change-Id: Ia5d2af9ef435e5932965c15eec2e428d2130d230 Reviewed-on: https://go-review.googlesource.com/c/go/+/476097 Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Bypass: Ian Lance Taylor <iant@google.com>
This commit is contained in:
parent
491153a71a
commit
f5eef58e43
|
|
@ -17,6 +17,7 @@ import _ "unsafe" // for go:linkname
|
||||||
//go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
|
//go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
|
||||||
//go:cgo_import_dynamic libc_setgid setgid "libc.so"
|
//go:cgo_import_dynamic libc_setgid setgid "libc.so"
|
||||||
//go:cgo_import_dynamic libc_setgroups setgroups "libc.so"
|
//go:cgo_import_dynamic libc_setgroups setgroups "libc.so"
|
||||||
|
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so"
|
||||||
//go:cgo_import_dynamic libc_setsid setsid "libc.so"
|
//go:cgo_import_dynamic libc_setsid setsid "libc.so"
|
||||||
//go:cgo_import_dynamic libc_setuid setuid "libc.so"
|
//go:cgo_import_dynamic libc_setuid setuid "libc.so"
|
||||||
//go:cgo_import_dynamic libc_setpgid setpgid "libc.so"
|
//go:cgo_import_dynamic libc_setpgid setpgid "libc.so"
|
||||||
|
|
@ -34,6 +35,7 @@ import _ "unsafe" // for go:linkname
|
||||||
//go:linkname libc_ioctl libc_ioctl
|
//go:linkname libc_ioctl libc_ioctl
|
||||||
//go:linkname libc_setgid libc_setgid
|
//go:linkname libc_setgid libc_setgid
|
||||||
//go:linkname libc_setgroups libc_setgroups
|
//go:linkname libc_setgroups libc_setgroups
|
||||||
|
//go:linkname libc_setrlimit libc_setrlimit
|
||||||
//go:linkname libc_setsid libc_setsid
|
//go:linkname libc_setsid libc_setsid
|
||||||
//go:linkname libc_setuid libc_setuid
|
//go:linkname libc_setuid libc_setuid
|
||||||
//go:linkname libc_setpgid libc_setpgid
|
//go:linkname libc_setpgid libc_setpgid
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import "unsafe"
|
||||||
//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o"
|
||||||
|
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o"
|
||||||
|
|
@ -31,6 +32,7 @@ import "unsafe"
|
||||||
//go:linkname libc_ioctl libc_ioctl
|
//go:linkname libc_ioctl libc_ioctl
|
||||||
//go:linkname libc_setgid libc_setgid
|
//go:linkname libc_setgid libc_setgid
|
||||||
//go:linkname libc_setgroups libc_setgroups
|
//go:linkname libc_setgroups libc_setgroups
|
||||||
|
//go:linkname libc_setrlimit libc_setrlimit
|
||||||
//go:linkname libc_setsid libc_setsid
|
//go:linkname libc_setsid libc_setsid
|
||||||
//go:linkname libc_setuid libc_setuid
|
//go:linkname libc_setuid libc_setuid
|
||||||
//go:linkname libc_setpgid libc_setpgid
|
//go:linkname libc_setpgid libc_setpgid
|
||||||
|
|
@ -45,6 +47,7 @@ var (
|
||||||
libc_ioctl,
|
libc_ioctl,
|
||||||
libc_setgid,
|
libc_setgid,
|
||||||
libc_setgroups,
|
libc_setgroups,
|
||||||
|
libc_setrlimit,
|
||||||
libc_setsid,
|
libc_setsid,
|
||||||
libc_setuid,
|
libc_setuid,
|
||||||
libc_setpgid libFunc
|
libc_setpgid libFunc
|
||||||
|
|
@ -199,6 +202,13 @@ func syscall_setgroups1(ngid, gid uintptr) (err uintptr) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:linkname syscall_setrlimit1 syscall.setrlimit1
|
||||||
|
//go:nosplit
|
||||||
|
func syscall_setrlimit1(which uintptr, lim unsafe.Pointer) (err uintptr) {
|
||||||
|
_, err = syscall2(&libc_setrlimit, which, uintptr(lim))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
//go:linkname syscall_setsid syscall.setsid
|
//go:linkname syscall_setsid syscall.setsid
|
||||||
//go:nosplit
|
//go:nosplit
|
||||||
func syscall_setsid() (pid, err uintptr) {
|
func syscall_setsid() (pid, err uintptr) {
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ var (
|
||||||
libc_ioctl,
|
libc_ioctl,
|
||||||
libc_setgid,
|
libc_setgid,
|
||||||
libc_setgroups,
|
libc_setgroups,
|
||||||
|
libc_setrlimit,
|
||||||
libc_setsid,
|
libc_setsid,
|
||||||
libc_setuid,
|
libc_setuid,
|
||||||
libc_setpgid,
|
libc_setpgid,
|
||||||
|
|
@ -234,6 +235,19 @@ func syscall_setgroups(ngid, gid uintptr) (err uintptr) {
|
||||||
return call.err
|
return call.err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
//go:linkname syscall_setrlimit
|
||||||
|
//go:cgo_unsafe_args
|
||||||
|
func syscall_setrlimit(which uintptr, lim unsafe.Pointer) (err uintptr) {
|
||||||
|
call := libcall{
|
||||||
|
fn: uintptr(unsafe.Pointer(&libc_setrlimit)),
|
||||||
|
n: 2,
|
||||||
|
args: uintptr(unsafe.Pointer(&which)),
|
||||||
|
}
|
||||||
|
asmcgocall(unsafe.Pointer(&asmsysvicall6x), unsafe.Pointer(&call))
|
||||||
|
return call.err
|
||||||
|
}
|
||||||
|
|
||||||
//go:nosplit
|
//go:nosplit
|
||||||
//go:linkname syscall_setsid
|
//go:linkname syscall_setsid
|
||||||
func syscall_setsid() (pid, err uintptr) {
|
func syscall_setsid() (pid, err uintptr) {
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,9 @@ TEXT ·setgid(SB),NOSPLIT,$0
|
||||||
TEXT ·setgroups1(SB),NOSPLIT,$0
|
TEXT ·setgroups1(SB),NOSPLIT,$0
|
||||||
JMP runtime·syscall_setgroups(SB)
|
JMP runtime·syscall_setgroups(SB)
|
||||||
|
|
||||||
|
TEXT ·setrlimit1(SB),NOSPLIT,$0
|
||||||
|
JMP runtime·syscall_setrlimit(SB)
|
||||||
|
|
||||||
TEXT ·setsid(SB),NOSPLIT,$0
|
TEXT ·setsid(SB),NOSPLIT,$0
|
||||||
JMP runtime·syscall_setsid(SB)
|
JMP runtime·syscall_setsid(SB)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
ngroups, groups uintptr
|
ngroups, groups uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
// guard against side effects of shuffling fds below.
|
// guard against side effects of shuffling fds below.
|
||||||
// Make sure that nextfd is beyond any currently open files so
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
// that we can't run the risk of overwriting any of them.
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
|
@ -273,6 +275,11 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
RawSyscall(SYS_SETRLIMIT, uintptr(RLIMIT_NOFILE), uintptr(unsafe.Pointer(&rlim)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
// Time to exec.
|
// Time to exec.
|
||||||
_, _, err1 = RawSyscall(SYS_EXECVE,
|
_, _, err1 = RawSyscall(SYS_EXECVE,
|
||||||
uintptr(unsafe.Pointer(argv0)),
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
upid uintptr
|
upid uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
// Record parent PID so child can test if it has died.
|
// Record parent PID so child can test if it has died.
|
||||||
ppid, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
|
ppid, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
|
||||||
|
|
||||||
|
|
@ -297,6 +299,11 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
RawSyscall(SYS_SETRLIMIT, uintptr(RLIMIT_NOFILE), uintptr(unsafe.Pointer(&rlim)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
// Time to exec.
|
// Time to exec.
|
||||||
_, _, err1 = RawSyscall(SYS_EXECVE,
|
_, _, err1 = RawSyscall(SYS_EXECVE,
|
||||||
uintptr(unsafe.Pointer(argv0)),
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@ func getpid() (pid uintptr, err Errno)
|
||||||
func ioctl(fd uintptr, req uintptr, arg uintptr) (err Errno)
|
func ioctl(fd uintptr, req uintptr, arg uintptr) (err Errno)
|
||||||
func setgid(gid uintptr) (err Errno)
|
func setgid(gid uintptr) (err Errno)
|
||||||
func setgroups1(ngid uintptr, gid uintptr) (err Errno)
|
func setgroups1(ngid uintptr, gid uintptr) (err Errno)
|
||||||
|
func setrlimit1(which uintptr, lim unsafe.Pointer) (err Errno)
|
||||||
func setsid() (pid uintptr, err Errno)
|
func setsid() (pid uintptr, err Errno)
|
||||||
func setuid(uid uintptr) (err Errno)
|
func setuid(uid uintptr) (err Errno)
|
||||||
func setpgid(pid uintptr, pgid uintptr) (err Errno)
|
func setpgid(pid uintptr, pgid uintptr) (err Errno)
|
||||||
|
|
@ -90,6 +91,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
ngroups, groups uintptr
|
ngroups, groups uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
// guard against side effects of shuffling fds below.
|
// guard against side effects of shuffling fds below.
|
||||||
// Make sure that nextfd is beyond any currently open files so
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
// that we can't run the risk of overwriting any of them.
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
|
@ -292,6 +295,11 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
setrlimit1(RLIMIT_NOFILE, unsafe.Pointer(&rlim))
|
||||||
|
}
|
||||||
|
|
||||||
// Time to exec.
|
// Time to exec.
|
||||||
err1 = execve(
|
err1 = execve(
|
||||||
uintptr(unsafe.Pointer(argv0)),
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
ngroups, groups uintptr
|
ngroups, groups uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
// guard against side effects of shuffling fds below.
|
// guard against side effects of shuffling fds below.
|
||||||
// Make sure that nextfd is beyond any currently open files so
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
// that we can't run the risk of overwriting any of them.
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
|
@ -269,6 +271,11 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(RLIMIT_NOFILE), uintptr(unsafe.Pointer(&rlim)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
// Time to exec.
|
// Time to exec.
|
||||||
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_execve_trampoline),
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_execve_trampoline),
|
||||||
uintptr(unsafe.Pointer(argv0)),
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
|
|
||||||
|
|
@ -240,6 +240,8 @@ func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, att
|
||||||
c uintptr
|
c uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
if sys.UidMappings != nil {
|
if sys.UidMappings != nil {
|
||||||
puid = []byte("/proc/self/uid_map\000")
|
puid = []byte("/proc/self/uid_map\000")
|
||||||
uidmap = formatIDMappings(sys.UidMappings)
|
uidmap = formatIDMappings(sys.UidMappings)
|
||||||
|
|
@ -609,6 +611,11 @@ func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, att
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
rawSetrlimit(RLIMIT_NOFILE, &rlim)
|
||||||
|
}
|
||||||
|
|
||||||
// Enable tracing if requested.
|
// Enable tracing if requested.
|
||||||
// Do this right before exec so that we don't unnecessarily trace the runtime
|
// Do this right before exec so that we don't unnecessarily trace the runtime
|
||||||
// setting up after the fork. See issue #21428.
|
// setting up after the fork. See issue #21428.
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,11 @@ func Exec(argv0 string, argv []string, envv []string) (err error) {
|
||||||
}
|
}
|
||||||
runtime_BeforeExec()
|
runtime_BeforeExec()
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
Setrlimit(RLIMIT_NOFILE, &rlim)
|
||||||
|
}
|
||||||
|
|
||||||
var err1 error
|
var err1 error
|
||||||
if runtime.GOOS == "solaris" || runtime.GOOS == "illumos" || runtime.GOOS == "aix" {
|
if runtime.GOOS == "solaris" || runtime.GOOS == "illumos" || runtime.GOOS == "aix" {
|
||||||
// RawSyscall should never be used on Solaris, illumos, or AIX.
|
// RawSyscall should never be used on Solaris, illumos, or AIX.
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,15 @@
|
||||||
package syscall_test
|
package syscall_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"internal/testenv"
|
"internal/testenv"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"strconv"
|
||||||
"syscall"
|
"syscall"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
@ -345,3 +348,42 @@ func TestExecHelper(t *testing.T) {
|
||||||
|
|
||||||
t.Error("syscall.Exec returned")
|
t.Error("syscall.Exec returned")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test that rlimit values are restored by exec.
|
||||||
|
func TestRlimitRestored(t *testing.T) {
|
||||||
|
if os.Getenv("GO_WANT_HELPER_PROCESS") != "" {
|
||||||
|
fmt.Println(syscall.OrigRlimitNofile().Cur)
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
orig := syscall.OrigRlimitNofile()
|
||||||
|
if orig.Cur == 0 {
|
||||||
|
t.Skip("skipping test because rlimit not adjusted at startup")
|
||||||
|
}
|
||||||
|
|
||||||
|
executable, err := os.Executable()
|
||||||
|
if err != nil {
|
||||||
|
executable = os.Args[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := testenv.Command(t, executable, "-test.run=TestRlimitRestored")
|
||||||
|
cmd = testenv.CleanCmdEnv(cmd)
|
||||||
|
cmd.Env = append(cmd.Env, "GO_WANT_HELPER_PROCESS=1")
|
||||||
|
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if len(out) > 0 {
|
||||||
|
t.Logf("%s", out)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("subprocess failed: %v", err)
|
||||||
|
}
|
||||||
|
s := string(bytes.TrimSpace(out))
|
||||||
|
v, err := strconv.ParseUint(s, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("could not parse %q as number: %v", s, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
if v != uint64(orig.Cur) {
|
||||||
|
t.Errorf("exec rlimit = %d, want %d", v, orig)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
// Copyright 2023 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build unix
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
func OrigRlimitNofile() Rlimit {
|
||||||
|
if rlim, ok := origRlimitNofile.Load().(Rlimit); ok {
|
||||||
|
return rlim
|
||||||
|
}
|
||||||
|
return Rlimit{0, 0}
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,15 @@
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync/atomic"
|
||||||
|
)
|
||||||
|
|
||||||
|
// origRlimitNofile, if not {0, 0}, is the original soft RLIMIT_NOFILE.
|
||||||
|
// When we can assume that we are bootstrapping with Go 1.19,
|
||||||
|
// this can be atomic.Pointer[Rlimit].
|
||||||
|
var origRlimitNofile atomic.Value // of Rlimit
|
||||||
|
|
||||||
// Some systems set an artificially low soft limit on open file count, for compatibility
|
// Some systems set an artificially low soft limit on open file count, for compatibility
|
||||||
// with code that uses select and its hard-coded maximum file descriptor
|
// with code that uses select and its hard-coded maximum file descriptor
|
||||||
// (limited by the size of fd_set).
|
// (limited by the size of fd_set).
|
||||||
|
|
@ -23,8 +32,19 @@ package syscall
|
||||||
func init() {
|
func init() {
|
||||||
var lim Rlimit
|
var lim Rlimit
|
||||||
if err := Getrlimit(RLIMIT_NOFILE, &lim); err == nil && lim.Cur != lim.Max {
|
if err := Getrlimit(RLIMIT_NOFILE, &lim); err == nil && lim.Cur != lim.Max {
|
||||||
|
origRlimitNofile.Store(lim)
|
||||||
lim.Cur = lim.Max
|
lim.Cur = lim.Max
|
||||||
adjustFileLimit(&lim)
|
adjustFileLimit(&lim)
|
||||||
Setrlimit(RLIMIT_NOFILE, &lim)
|
setrlimit(RLIMIT_NOFILE, &lim)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Setrlimit(resource int, rlim *Rlimit) error {
|
||||||
|
err := setrlimit(resource, rlim)
|
||||||
|
if err == nil && resource == RLIMIT_NOFILE {
|
||||||
|
// Store zeroes in origRlimitNofile to tell StartProcess
|
||||||
|
// to not adjust the rlimit in the child process.
|
||||||
|
origRlimitNofile.Store(Rlimit{0, 0})
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -633,7 +633,7 @@ func PtraceDetach(pid int) (err error) { return ptrace64(PT_DETACH, int64(pid),
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sys Stat(path string, stat *Stat_t) (err error)
|
//sys Stat(path string, stat *Stat_t) (err error)
|
||||||
//sys Statfs(path string, buf *Statfs_t) (err error)
|
//sys Statfs(path string, buf *Statfs_t) (err error)
|
||||||
//sys Symlink(path string, link string) (err error)
|
//sys Symlink(path string, link string) (err error)
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ func Kill(pid int, signum Signal) (err error) { return kill(pid, int(signum), 1)
|
||||||
//sys Setprivexec(flag int) (err error)
|
//sys Setprivexec(flag int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
|
|
|
||||||
|
|
@ -240,7 +240,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,7 @@ func Mknod(path string, mode uint32, dev uint64) (err error) {
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
|
|
|
||||||
|
|
@ -1058,7 +1058,7 @@ func Getpgrp() (pid int) {
|
||||||
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
||||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
||||||
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
||||||
//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
//sysnb prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
||||||
//sys read(fd int, p []byte) (n int, err error)
|
//sys read(fd int, p []byte) (n int, err error)
|
||||||
//sys Removexattr(path string, attr string) (err error)
|
//sys Removexattr(path string, attr string) (err error)
|
||||||
//sys Setdomainname(p []byte) (err error)
|
//sys Setdomainname(p []byte) (err error)
|
||||||
|
|
@ -1261,3 +1261,14 @@ func Munmap(b []byte) (err error) {
|
||||||
//sys Munlock(b []byte) (err error)
|
//sys Munlock(b []byte) (err error)
|
||||||
//sys Mlockall(flags int) (err error)
|
//sys Mlockall(flags int) (err error)
|
||||||
//sys Munlockall() (err error)
|
//sys Munlockall() (err error)
|
||||||
|
|
||||||
|
// prlimit changes a resource limit. We use a single definition so that
|
||||||
|
// we can tell StartProcess to not restore the original NOFILE limit.
|
||||||
|
// This is unexported but can be called from x/sys/unix.
|
||||||
|
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
|
err = prlimit1(pid, resource, newlimit, old)
|
||||||
|
if err == nil && newlimit != nil && resource == RLIMIT_NOFILE {
|
||||||
|
origRlimitNofile.Store(Rlimit{0, 0})
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,9 +107,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
//sysnb setrlimit1(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
err = prlimit(0, resource, rlim, nil)
|
err = prlimit(0, resource, rlim, nil)
|
||||||
if err != ENOSYS {
|
if err != ENOSYS {
|
||||||
return err
|
return err
|
||||||
|
|
@ -131,7 +131,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return EINVAL
|
return EINVAL
|
||||||
}
|
}
|
||||||
|
|
||||||
return setrlimit(resource, &rl)
|
return setrlimit1(resource, &rl)
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0)
|
||||||
|
if errno != ENOSYS {
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
|
rl := rlimit32{}
|
||||||
|
if rlim.Cur == rlimInf64 {
|
||||||
|
rl.Cur = rlimInf32
|
||||||
|
} else if rlim.Cur < uint64(rlimInf32) {
|
||||||
|
rl.Cur = uint32(rlim.Cur)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
if rlim.Max == rlimInf64 {
|
||||||
|
rl.Max = rlimInf32
|
||||||
|
} else if rlim.Max < uint64(rlimInf32) {
|
||||||
|
rl.Max = uint32(rlim.Max)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
_, _, errno = RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
}
|
}
|
||||||
|
|
||||||
// Underlying system call writes to newoffset via pointer.
|
// Underlying system call writes to newoffset via pointer.
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,10 @@
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_SYS_setgroups = SYS_SETGROUPS
|
_SYS_setgroups = SYS_SETGROUPS
|
||||||
_SYS_clone3 = 435
|
_SYS_clone3 = 435
|
||||||
|
|
@ -33,7 +37,7 @@ const (
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT
|
||||||
//sys Shutdown(fd int, how int) (err error)
|
//sys Shutdown(fd int, how int) (err error)
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
//sys Statfs(path string, buf *Statfs_t) (err error)
|
//sys Statfs(path string, buf *Statfs_t) (err error)
|
||||||
|
|
@ -98,6 +102,12 @@ func Time(t *Time_t) (tt Time_t, err error) {
|
||||||
//sys Utime(path string, buf *Utimbuf) (err error)
|
//sys Utime(path string, buf *Utimbuf) (err error)
|
||||||
//sys utimes(path string, times *[2]Timeval) (err error)
|
//sys utimes(path string, times *[2]Timeval) (err error)
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func setTimespec(sec, nsec int64) Timespec {
|
func setTimespec(sec, nsec int64) Timespec {
|
||||||
return Timespec{Sec: sec, Nsec: nsec}
|
return Timespec{Sec: sec, Nsec: nsec}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,9 +159,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
//sysnb setrlimit1(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
err = prlimit(0, resource, rlim, nil)
|
err = prlimit(0, resource, rlim, nil)
|
||||||
if err != ENOSYS {
|
if err != ENOSYS {
|
||||||
return err
|
return err
|
||||||
|
|
@ -183,7 +183,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return EINVAL
|
return EINVAL
|
||||||
}
|
}
|
||||||
|
|
||||||
return setrlimit(resource, &rl)
|
return setrlimit1(resource, &rl)
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0)
|
||||||
|
if errno != ENOSYS {
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
|
rl := rlimit32{}
|
||||||
|
if rlim.Cur == rlimInf64 {
|
||||||
|
rl.Cur = rlimInf32
|
||||||
|
} else if rlim.Cur < uint64(rlimInf32) {
|
||||||
|
rl.Cur = uint32(rlim.Cur)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
if rlim.Max == rlimInf64 {
|
||||||
|
rl.Max = rlimInf32
|
||||||
|
} else if rlim.Max < uint64(rlimInf32) {
|
||||||
|
rl.Max = uint32(rlim.Max)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
_, _, errno = RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }
|
func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) error {
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit1(resource int, rlim *Rlimit) (err error)
|
||||||
//sys Shutdown(fd int, how int) (err error)
|
//sys Shutdown(fd int, how int) (err error)
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
|
|
||||||
|
|
@ -148,13 +148,23 @@ func Getrlimit(resource int, rlim *Rlimit) error {
|
||||||
return getrlimit(resource, rlim)
|
return getrlimit(resource, rlim)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setrlimit prefers the prlimit64 system call. See issue 38604.
|
// setrlimit prefers the prlimit64 system call. See issue 38604.
|
||||||
func Setrlimit(resource int, rlim *Rlimit) error {
|
func setrlimit(resource int, rlim *Rlimit) error {
|
||||||
err := prlimit(0, resource, rlim, nil)
|
err := prlimit(0, resource, rlim, nil)
|
||||||
if err != ENOSYS {
|
if err != ENOSYS {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return setrlimit(resource, rlim)
|
return setrlimit1(resource, rlim)
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0)
|
||||||
|
if errno != ENOSYS {
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
_, _, errno = RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) PC() uint64 { return r.Pc }
|
func (r *PtraceRegs) PC() uint64 { return r.Pc }
|
||||||
|
|
|
||||||
|
|
@ -187,11 +187,17 @@ func Getrlimit(resource int, rlim *Rlimit) error {
|
||||||
return prlimit(0, resource, nil, rlim)
|
return prlimit(0, resource, nil, rlim)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setrlimit prefers the prlimit64 system call.
|
// setrlimit prefers the prlimit64 system call.
|
||||||
func Setrlimit(resource int, rlim *Rlimit) error {
|
func setrlimit(resource int, rlim *Rlimit) error {
|
||||||
return prlimit(0, resource, rlim, nil)
|
return prlimit(0, resource, rlim, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) GetEra() uint64 { return r.Era }
|
func (r *PtraceRegs) GetEra() uint64 { return r.Era }
|
||||||
|
|
||||||
func (r *PtraceRegs) SetEra(era uint64) { r.Era = era }
|
func (r *PtraceRegs) SetEra(era uint64) { r.Era = era }
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,10 @@
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_SYS_setgroups = SYS_SETGROUPS
|
_SYS_setgroups = SYS_SETGROUPS
|
||||||
_SYS_clone3 = 5435
|
_SYS_clone3 = 5435
|
||||||
|
|
@ -33,7 +37,7 @@ const (
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT
|
||||||
//sys Shutdown(fd int, how int) (err error)
|
//sys Shutdown(fd int, how int) (err error)
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
//sys Statfs(path string, buf *Statfs_t) (err error)
|
//sys Statfs(path string, buf *Statfs_t) (err error)
|
||||||
|
|
@ -89,6 +93,12 @@ func Time(t *Time_t) (tt Time_t, err error) {
|
||||||
//sys Utime(path string, buf *Utimbuf) (err error)
|
//sys Utime(path string, buf *Utimbuf) (err error)
|
||||||
//sys utimes(path string, times *[2]Timeval) (err error)
|
//sys utimes(path string, times *[2]Timeval) (err error)
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func setTimespec(sec, nsec int64) Timespec {
|
func setTimespec(sec, nsec int64) Timespec {
|
||||||
return Timespec{Sec: sec, Nsec: nsec}
|
return Timespec{Sec: sec, Nsec: nsec}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,9 +152,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
//sysnb setrlimit1(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
err = prlimit(0, resource, rlim, nil)
|
err = prlimit(0, resource, rlim, nil)
|
||||||
if err != ENOSYS {
|
if err != ENOSYS {
|
||||||
return err
|
return err
|
||||||
|
|
@ -176,7 +176,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
return EINVAL
|
return EINVAL
|
||||||
}
|
}
|
||||||
|
|
||||||
return setrlimit(resource, &rl)
|
return setrlimit1(resource, &rl)
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0)
|
||||||
|
if errno != ENOSYS {
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
|
rl := rlimit32{}
|
||||||
|
if rlim.Cur == rlimInf64 {
|
||||||
|
rl.Cur = rlimInf32
|
||||||
|
} else if rlim.Cur < uint64(rlimInf32) {
|
||||||
|
rl.Cur = uint32(rlim.Cur)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
if rlim.Max == rlimInf64 {
|
||||||
|
rl.Max = rlimInf32
|
||||||
|
} else if rlim.Max < uint64(rlimInf32) {
|
||||||
|
rl.Max = uint32(rlim.Max)
|
||||||
|
} else {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
_, _, errno = RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) }
|
func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) }
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,10 @@
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_SYS_setgroups = SYS_SETGROUPS
|
_SYS_setgroups = SYS_SETGROUPS
|
||||||
_SYS_clone3 = 435
|
_SYS_clone3 = 435
|
||||||
|
|
@ -39,7 +43,7 @@ const (
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT
|
||||||
//sys Shutdown(fd int, how int) (err error)
|
//sys Shutdown(fd int, how int) (err error)
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
//sys Stat(path string, stat *Stat_t) (err error)
|
//sys Stat(path string, stat *Stat_t) (err error)
|
||||||
|
|
@ -68,6 +72,12 @@ const (
|
||||||
//sys Utime(path string, buf *Utimbuf) (err error)
|
//sys Utime(path string, buf *Utimbuf) (err error)
|
||||||
//sys utimes(path string, times *[2]Timeval) (err error)
|
//sys utimes(path string, times *[2]Timeval) (err error)
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func setTimespec(sec, nsec int64) Timespec {
|
func setTimespec(sec, nsec int64) Timespec {
|
||||||
return Timespec{Sec: sec, Nsec: nsec}
|
return Timespec{Sec: sec, Nsec: nsec}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) error {
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT
|
||||||
//sys Shutdown(fd int, how int) (err error)
|
//sys Shutdown(fd int, how int) (err error)
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
|
|
||||||
|
|
@ -143,6 +143,12 @@ func utimes(path string, tv *[2]Timeval) (err error) {
|
||||||
return utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
return utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) PC() uint64 { return r.Pc }
|
func (r *PtraceRegs) PC() uint64 { return r.Pc }
|
||||||
|
|
||||||
func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
|
func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ const (
|
||||||
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
//sys Setfsgid(gid int) (err error)
|
//sys Setfsgid(gid int) (err error)
|
||||||
//sys Setfsuid(uid int) (err error)
|
//sys Setfsuid(uid int) (err error)
|
||||||
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
|
//sysnb setrlimit(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT
|
||||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||||
//sys Stat(path string, stat *Stat_t) (err error)
|
//sys Stat(path string, stat *Stat_t) (err error)
|
||||||
//sys Statfs(path string, buf *Statfs_t) (err error)
|
//sys Statfs(path string, buf *Statfs_t) (err error)
|
||||||
|
|
@ -243,6 +243,12 @@ func Shutdown(s, how int) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:nosplit
|
||||||
|
func rawSetrlimit(resource int, rlim *Rlimit) Errno {
|
||||||
|
_, _, errno := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
|
return errno
|
||||||
|
}
|
||||||
|
|
||||||
func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
|
func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
|
||||||
|
|
||||||
func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
|
func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
|
|
|
||||||
|
|
@ -473,7 +473,7 @@ func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags i
|
||||||
//sys Setpriority(which int, who int, prio int) (err error)
|
//sys Setpriority(which int, who int, prio int) (err error)
|
||||||
//sysnb Setregid(rgid int, egid int) (err error)
|
//sysnb Setregid(rgid int, egid int) (err error)
|
||||||
//sysnb Setreuid(ruid int, euid int) (err error)
|
//sysnb Setreuid(ruid int, euid int) (err error)
|
||||||
//sysnb Setrlimit(which int, lim *Rlimit) (err error)
|
//sysnb setrlimit(which int, lim *Rlimit) (err error)
|
||||||
//sysnb Setsid() (pid int, err error)
|
//sysnb Setsid() (pid int, err error)
|
||||||
//sysnb Setuid(uid int) (err error)
|
//sysnb Setuid(uid int) (err error)
|
||||||
//sys Shutdown(s int, how int) (err error) = libsocket.shutdown
|
//sys Shutdown(s int, how int) (err error) = libsocket.shutdown
|
||||||
|
|
|
||||||
|
|
@ -1271,7 +1271,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall6(uintptr(unsafe.Pointer(&libc_Setrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
|
_, _, e1 := rawSyscall6(uintptr(unsafe.Pointer(&libc_Setrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1480,7 +1480,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1480,7 +1480,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1066,7 +1066,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1401,7 +1401,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func setrlimit(resource int, rlim *rlimit32) (err error) {
|
func setrlimit1(resource int, rlim *rlimit32) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1332,7 +1332,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1604,7 +1604,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func setrlimit(resource int, rlim *rlimit32) (err error) {
|
func setrlimit1(resource int, rlim *rlimit32) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1302,7 +1302,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit1(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1679,7 +1679,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func setrlimit(resource int, rlim *rlimit32) (err error) {
|
func setrlimit1(resource int, rlim *rlimit32) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1321,7 +1321,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1321,7 +1321,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1679,7 +1679,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func setrlimit(resource int, rlim *rlimit32) (err error) {
|
func setrlimit1(resource int, rlim *rlimit32) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1394,7 +1394,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1394,7 +1394,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1302,7 +1302,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -701,7 +701,7 @@ func PivotRoot(newroot string, putold string) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
func prlimit1(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
_, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
@ -1364,7 +1364,7 @@ func Setfsuid(uid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(resource int, rlim *Rlimit) (err error) {
|
func setrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1030,7 +1030,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1030,7 +1030,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1030,7 +1030,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1030,7 +1030,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -1039,7 +1039,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
_, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
|
|
@ -962,7 +962,7 @@ func Setreuid(ruid int, euid int) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Setrlimit(which int, lim *Rlimit) (err error) {
|
func setrlimit(which int, lim *Rlimit) (err error) {
|
||||||
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&libc_Setrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
|
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&libc_Setrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
err = errnoErr(e1)
|
err = errnoErr(e1)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue