]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.19] syscall: restore original NOFILE rlimit in child process
authorIan Lance Taylor <iant@golang.org>
Wed, 22 Mar 2023 20:33:14 +0000 (13:33 -0700)
committerIan Lance Taylor <iant@google.com>
Fri, 14 Apr 2023 18:01:07 +0000 (18:01 +0000)
If we increased the NOFILE rlimit when starting the program,
restore the original rlimit when forking a child process.

In CL 393354 the os package was changed to raise the open file rlimit
at program start. That code is not inherently tied to the os package.
This CL moves it into the syscall package.

This is a backport of CLs 476096 and 476097 from trunk.

For #46279
Fixes #59063

Change-Id: I9be6ecc52d4f82eb226907611aec9df808e1da84
Reviewed-on: https://go-review.googlesource.com/c/go/+/478660
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
65 files changed:
src/runtime/syscall2_solaris.go
src/runtime/syscall_aix.go
src/runtime/syscall_solaris.go
src/syscall/asm_solaris_amd64.s
src/syscall/exec_bsd.go
src/syscall/exec_freebsd.go
src/syscall/exec_libc.go
src/syscall/exec_libc2.go
src/syscall/exec_linux.go
src/syscall/exec_unix.go
src/syscall/exec_unix_test.go
src/syscall/export_rlimit_test.go [new file with mode: 0644]
src/syscall/rlimit.go [moved from src/os/rlimit.go with 60% similarity]
src/syscall/rlimit_darwin.go [moved from src/os/rlimit_darwin.go with 79% similarity]
src/syscall/rlimit_stub.go [moved from src/os/rlimit_stub.go with 82% similarity]
src/syscall/rlimit_test.go [moved from src/os/rlimit_test.go with 91% similarity]
src/syscall/syscall_aix.go
src/syscall/syscall_darwin.go
src/syscall/syscall_dragonfly.go
src/syscall/syscall_freebsd.go
src/syscall/syscall_linux.go
src/syscall/syscall_linux_386.go
src/syscall/syscall_linux_amd64.go
src/syscall/syscall_linux_arm.go
src/syscall/syscall_linux_arm64.go
src/syscall/syscall_linux_loong64.go
src/syscall/syscall_linux_mips64x.go
src/syscall/syscall_linux_mipsx.go
src/syscall/syscall_linux_ppc64x.go
src/syscall/syscall_linux_riscv64.go
src/syscall/syscall_linux_s390x.go
src/syscall/syscall_netbsd.go
src/syscall/syscall_openbsd.go
src/syscall/syscall_solaris.go
src/syscall/zsyscall_aix_ppc64.go
src/syscall/zsyscall_darwin_amd64.go
src/syscall/zsyscall_darwin_arm64.go
src/syscall/zsyscall_dragonfly_amd64.go
src/syscall/zsyscall_freebsd_386.go
src/syscall/zsyscall_freebsd_amd64.go
src/syscall/zsyscall_freebsd_arm.go
src/syscall/zsyscall_freebsd_arm64.go
src/syscall/zsyscall_linux_386.go
src/syscall/zsyscall_linux_amd64.go
src/syscall/zsyscall_linux_arm.go
src/syscall/zsyscall_linux_arm64.go
src/syscall/zsyscall_linux_loong64.go
src/syscall/zsyscall_linux_mips.go
src/syscall/zsyscall_linux_mips64.go
src/syscall/zsyscall_linux_mips64le.go
src/syscall/zsyscall_linux_mipsle.go
src/syscall/zsyscall_linux_ppc64.go
src/syscall/zsyscall_linux_ppc64le.go
src/syscall/zsyscall_linux_riscv64.go
src/syscall/zsyscall_linux_s390x.go
src/syscall/zsyscall_netbsd_386.go
src/syscall/zsyscall_netbsd_amd64.go
src/syscall/zsyscall_netbsd_arm.go
src/syscall/zsyscall_netbsd_arm64.go
src/syscall/zsyscall_openbsd_386.go
src/syscall/zsyscall_openbsd_amd64.go
src/syscall/zsyscall_openbsd_arm.go
src/syscall/zsyscall_openbsd_arm64.go
src/syscall/zsyscall_openbsd_mips64.go
src/syscall/zsyscall_solaris_amd64.go

index 331048920212230704c5c74cfd5069d12b220c86..d464f284bcb2f42de47286b65537bbddd30349fc 100644 (file)
@@ -17,6 +17,7 @@ import _ "unsafe" // for go:linkname
 //go:cgo_import_dynamic libc_ioctl ioctl "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_setrlimit setrlimit "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_setpgid setpgid "libc.so"
@@ -34,6 +35,7 @@ import _ "unsafe" // for go:linkname
 //go:linkname libc_ioctl libc_ioctl
 //go:linkname libc_setgid libc_setgid
 //go:linkname libc_setgroups libc_setgroups
+//go:linkname libc_setrlimit libc_setrlimit
 //go:linkname libc_setsid libc_setsid
 //go:linkname libc_setuid libc_setuid
 //go:linkname libc_setpgid libc_setpgid
index f294922e7dd29b6f5f11e3d92fb8523062724b9a..fdc6eed1c4cc329527fd5bfbded6f8b419642bf9 100644 (file)
@@ -18,6 +18,7 @@ import "unsafe"
 //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_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_setuid setuid "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_setgid libc_setgid
 //go:linkname libc_setgroups libc_setgroups
+//go:linkname libc_setrlimit libc_setrlimit
 //go:linkname libc_setsid libc_setsid
 //go:linkname libc_setuid libc_setuid
 //go:linkname libc_setpgid libc_setpgid
@@ -45,6 +47,7 @@ var (
        libc_ioctl,
        libc_setgid,
        libc_setgroups,
+       libc_setrlimit,
        libc_setsid,
        libc_setuid,
        libc_setpgid libFunc
@@ -199,6 +202,13 @@ func syscall_setgroups1(ngid, gid uintptr) (err uintptr) {
        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:nosplit
 func syscall_setsid() (pid, err uintptr) {
index e7bab3b23fb54fb2c4ae4069e65b6cafadafa632..9faee9ec468952a506253e2f3bb57c9bce602433 100644 (file)
@@ -18,6 +18,7 @@ var (
        libc_ioctl,
        libc_setgid,
        libc_setgroups,
+       libc_setrlimit,
        libc_setsid,
        libc_setuid,
        libc_setpgid,
@@ -234,6 +235,19 @@ func syscall_setgroups(ngid, gid uintptr) (err uintptr) {
        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:linkname syscall_setsid
 func syscall_setsid() (pid, err uintptr) {
index 3672d3667fa126c290692cef0e20669437edea54..41c56091b7c2a203028f3a21933392efed004504 100644 (file)
@@ -60,6 +60,9 @@ TEXT ·setgid(SB),NOSPLIT,$0
 TEXT ·setgroups1(SB),NOSPLIT,$0
        JMP     runtime·syscall_setgroups(SB)
 
+TEXT ·setrlimit1(SB),NOSPLIT,$0
+       JMP     runtime·syscall_setrlimit(SB)
+
 TEXT ·setsid(SB),NOSPLIT,$0
        JMP     runtime·syscall_setsid(SB)
 
index 4762ae751a3430c444a76fd707b8da902ad31e43..2bd8440ac372ab5f671efe5d1e146b58122a2809 100644 (file)
@@ -61,6 +61,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                i      int
        )
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+
        // guard against side effects of shuffling fds below.
        // Make sure that nextfd is beyond any currently open files so
        // that we can't run the risk of overwriting any of them.
@@ -266,6 +268,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.
        _, _, err1 = RawSyscall(SYS_EXECVE,
                uintptr(unsafe.Pointer(argv0)),
index 851b8fbd06a9177a6dfbb649bed7e7bbc7b9127c..b4132ca3f3833114e16fd0d79750ec41eb0db0e4 100644 (file)
@@ -66,6 +66,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                i      int
        )
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+
        // Record parent PID so child can test if it has died.
        ppid, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
 
@@ -283,6 +285,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.
        _, _, err1 = RawSyscall(SYS_EXECVE,
                uintptr(unsafe.Pointer(argv0)),
index aee1b8c98ab3566028d2f1e588f7fab02a1f216c..75a67c94c576831a1482219d17e0003743ce7e3d 100644 (file)
@@ -53,6 +53,7 @@ func getpid() (pid uintptr, err Errno)
 func ioctl(fd uintptr, req uintptr, arg uintptr) (err Errno)
 func setgid(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 setuid(uid uintptr) (err Errno)
 func setpgid(pid uintptr, pgid uintptr) (err Errno)
@@ -87,6 +88,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                i      int
        )
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+
        // guard against side effects of shuffling fds below.
        // Make sure that nextfd is beyond any currently open files so
        // that we can't run the risk of overwriting any of them.
@@ -289,6 +292,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.
        err1 = execve(
                uintptr(unsafe.Pointer(argv0)),
index 9eb61a5d35168dac5db6e2cba83a4713a6439a1f..499a5deb7e08f587e261f1f750bd5927c0b8cef8 100644 (file)
@@ -62,6 +62,8 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr
                i      int
        )
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+
        // guard against side effects of shuffling fds below.
        // Make sure that nextfd is beyond any currently open files so
        // that we can't run the risk of overwriting any of them.
@@ -266,6 +268,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.
        _, _, err1 = rawSyscall(abi.FuncPCABI0(libc_execve_trampoline),
                uintptr(unsafe.Pointer(argv0)),
index 554aad412d3634fec230a024fc8423c30891b8da..cb7127771eeca8dbcb0e7c2c27f373b956d1d5a7 100644 (file)
@@ -171,6 +171,8 @@ func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, att
                uidmap, setgroups, gidmap []byte
        )
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+
        if sys.UidMappings != nil {
                puid = []byte("/proc/self/uid_map\000")
                uidmap = formatIDMappings(sys.UidMappings)
@@ -519,6 +521,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.
        // Do this right before exec so that we don't unnecessarily trace the runtime
        // setting up after the fork. See issue #21428.
index 286be454d88f0263dd1fe29fea6ceced79c703fc..40e9b9feda5493886d32e11c326928b79a2d3010 100644 (file)
@@ -282,6 +282,11 @@ func Exec(argv0 string, argv []string, envv []string) (err error) {
        }
        runtime_BeforeExec()
 
+       rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
+       if rlimOK && rlim.Cur != 0 {
+               Setrlimit(RLIMIT_NOFILE, &rlim)
+       }
+
        var err1 error
        if runtime.GOOS == "solaris" || runtime.GOOS == "illumos" || runtime.GOOS == "aix" {
                // RawSyscall should never be used on Solaris, illumos, or AIX.
index 4253cda5cb6c7d6af0f0340b9817759c46f12226..033f53595521714d4e06d6706decd3ec23461466 100644 (file)
@@ -7,12 +7,15 @@
 package syscall_test
 
 import (
+       "bytes"
+       "fmt"
        "internal/testenv"
        "io"
        "math/rand"
        "os"
        "os/exec"
        "os/signal"
+       "strconv"
        "syscall"
        "testing"
        "time"
@@ -345,3 +348,44 @@ func TestExecHelper(t *testing.T) {
 
        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)
+       }
+
+       testenv.MustHaveExec(t)
+
+       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 := exec.Command(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)
+       }
+}
diff --git a/src/syscall/export_rlimit_test.go b/src/syscall/export_rlimit_test.go
new file mode 100644 (file)
index 0000000..320e331
--- /dev/null
@@ -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}
+}
similarity index 60%
rename from src/os/rlimit.go
rename to src/syscall/rlimit.go
index a89414d098bbd14d05372db5c889e316a25f43c5..06e7a5d8b1405030e08be5aae8573e1881f87147 100644 (file)
@@ -4,9 +4,16 @@
 
 //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
 
-package os
+package syscall
 
-import "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
 // with code that uses select and its hard-coded maximum file descriptor
@@ -23,10 +30,21 @@ import "syscall"
 // Code that really wants Go to leave the limit alone can set the hard limit,
 // which Go of course has no choice but to respect.
 func init() {
-       var lim syscall.Rlimit
-       if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &lim); err == nil && lim.Cur != lim.Max {
+       var lim Rlimit
+       if err := Getrlimit(RLIMIT_NOFILE, &lim); err == nil && lim.Cur != lim.Max {
+               origRlimitNofile.Store(lim)
                lim.Cur = lim.Max
                adjustFileLimit(&lim)
-               syscall.Setrlimit(syscall.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
 }
similarity index 79%
rename from src/os/rlimit_darwin.go
rename to src/syscall/rlimit_darwin.go
index b28982a83a193ddd9851603d96aced2b4f51df17..73e49646b30896d4d92eaf0e8fdc4f3f4a631494 100644 (file)
@@ -4,15 +4,13 @@
 
 //go:build darwin
 
-package os
-
-import "syscall"
+package syscall
 
 // adjustFileLimit adds per-OS limitations on the Rlimit used for RLIMIT_NOFILE. See rlimit.go.
-func adjustFileLimit(lim *syscall.Rlimit) {
+func adjustFileLimit(lim *Rlimit) {
        // On older macOS, setrlimit(RLIMIT_NOFILE, lim) with lim.Cur = infinity fails.
        // Set to the value of kern.maxfilesperproc instead.
-       n, err := syscall.SysctlUint32("kern.maxfilesperproc")
+       n, err := SysctlUint32("kern.maxfilesperproc")
        if err != nil {
                return
        }
similarity index 82%
rename from src/os/rlimit_stub.go
rename to src/syscall/rlimit_stub.go
index cbe28400c5b47d9826dfc7bbfb4523a7f4d9f062..e8f839dd991a38d2e3ee698955aec34d3d3f665c 100644 (file)
@@ -4,9 +4,7 @@
 
 //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd || solaris
 
-package os
-
-import "syscall"
+package syscall
 
 // adjustFileLimit adds per-OS limitations on the Rlimit used for RLIMIT_NOFILE. See rlimit.go.
-func adjustFileLimit(lim *syscall.Rlimit) {}
+func adjustFileLimit(lim *Rlimit) {}
similarity index 91%
rename from src/os/rlimit_test.go
rename to src/syscall/rlimit_test.go
index c02e36f3f76a682f07c59ec4526ed7d261549896..e48f45e3aacb75d07db1ff0ff2f33334f2677409 100644 (file)
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package os_test
+package syscall_test
 
 import (
-       "os"
+       "os"
        "runtime"
        "testing"
 )
@@ -24,9 +24,9 @@ func TestOpenFileLimit(t *testing.T) {
                fileCount = 768
        }
 
-       var files []*File
+       var files []*os.File
        for i := 0; i < fileCount; i++ {
-               f, err := Open("rlimit.go")
+               f, err := os.Open("rlimit.go")
                if err != nil {
                        t.Error(err)
                        break
index dbcb7bb7173170a42976c348bb721ad1ce9a4c73..421a2caede7f3925112969a4e57cd611324e0419 100644 (file)
@@ -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)
 //sysnb        Setregid(rgid int, egid 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  Statfs(path string, buf *Statfs_t) (err error)
 //sys  Symlink(path string, link string) (err error)
index 663bd98c104f517dba0a351b268dcdcac4907299..4c3058d96d8d7ae706706368c382fb17708bb93c 100644 (file)
@@ -194,7 +194,7 @@ func Kill(pid int, signum Signal) (err error) { return kill(pid, int(signum), 1)
 //sys  Setprivexec(flag int) (err error)
 //sysnb        Setregid(rgid int, egid 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        Settimeofday(tp *Timeval) (err error)
 //sysnb        Setuid(uid int) (err error)
index 1a3cfe51fa4b4f548a79e140f7d4ea02a92b8c10..61fd07a974eb40832a37dc6130de832ebe94f030 100644 (file)
@@ -237,7 +237,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
 //sys  Setpriority(which int, who int, prio int) (err error)
 //sysnb        Setregid(rgid int, egid 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        Settimeofday(tp *Timeval) (err error)
 //sysnb        Setuid(uid int) (err error)
index 0637215f8921bdab992f3faa1623cab3ade8bf70..2f28c62dc0f767fbd640693c066eb8051e2141f5 100644 (file)
@@ -491,7 +491,7 @@ func convertFromDirents11(buf []byte, old []byte) int {
 //sys  Setpriority(which int, who int, prio int) (err error)
 //sysnb        Setregid(rgid int, egid 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        Settimeofday(tp *Timeval) (err error)
 //sysnb        Setuid(uid int) (err error)
index a5ebe5086a59597dbc4f8179a547197870455a0d..3afee6217cb106a772180f5e69342d78584eb3cb 100644 (file)
@@ -1018,7 +1018,7 @@ func Getpgrp() (pid int) {
 //sys  Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
 //sys  Nanosleep(time *Timespec, leftover *Timespec) (err error)
 //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  Removexattr(path string, attr string) (err error)
 //sys  Setdomainname(p []byte) (err error)
@@ -1221,3 +1221,14 @@ func Munmap(b []byte) (err error) {
 //sys  Munlock(b []byte) (err error)
 //sys  Mlockall(flags int) (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
+}
index fc7df8496eb4c5ca40d5fd503be21f6ef820bce6..e2fade82857f7c960ea1b57c0fe91e83a6f43cd0 100644 (file)
@@ -104,9 +104,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
        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)
        if err != ENOSYS {
                return err
@@ -128,7 +128,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
                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.
index 0bcc664d32a074eccde1958669f0432e4b7f34db..4669e9a3e972c9f605f974a342915ad2dda72b27 100644 (file)
@@ -4,6 +4,10 @@
 
 package syscall
 
+import (
+       "unsafe"
+)
+
 const _SYS_setgroups = SYS_SETGROUPS
 
 //sys  Dup2(oldfd int, newfd int) (err error)
@@ -30,7 +34,7 @@ const _SYS_setgroups = SYS_SETGROUPS
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  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)
@@ -95,6 +99,12 @@ func Time(t *Time_t) (tt Time_t, err error) {
 //sys  Utime(path string, buf *Utimbuf) (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 {
        return Timespec{Sec: sec, Nsec: nsec}
 }
index 9db702729f8282db1e16bf50ced7c653395ffee8..fcd33aa563e26fafa61dd9df426e761657d4157d 100644 (file)
@@ -156,9 +156,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
        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)
        if err != ENOSYS {
                return err
@@ -180,7 +180,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
                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]) }
index ef935f3a63e4a3309bb792bc0fc450395a8969b1..f73f33dcec5c4aa48bec43a7861171f809c571a5 100644 (file)
@@ -35,7 +35,7 @@ func EpollCreate(size int) (fd int, err error) {
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
 
@@ -147,13 +147,23 @@ func Getrlimit(resource int, rlim *Rlimit) error {
        return getrlimit(resource, rlim)
 }
 
-// Setrlimit prefers the prlimit64 system call. See issue 38604.
-func Setrlimit(resource int, rlim *Rlimit) error {
+// setrlimit prefers the prlimit64 system call. See issue 38604.
+func setrlimit(resource int, rlim *Rlimit) error {
        err := prlimit(0, resource, rlim, nil)
        if err != ENOSYS {
                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 }
index 99674b4a8ba6e43c93d0fe167a87886eba71dc40..8354a7608d166bab2ce4de325da1a4bc2179f783 100644 (file)
@@ -190,11 +190,17 @@ func Getrlimit(resource int, rlim *Rlimit) error {
        return prlimit(0, resource, nil, rlim)
 }
 
-// Setrlimit prefers the prlimit64 system call.
-func Setrlimit(resource int, rlim *Rlimit) error {
+// setrlimit prefers the prlimit64 system call.
+func setrlimit(resource int, rlim *Rlimit) error {
        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) SetEra(era uint64) { r.Era = era }
index 258eb97b7ed28eae0da85aa3bf86be91a1c380ed..b03ca2eb9db3b655bd1405a23a16423a6a29e327 100644 (file)
@@ -6,6 +6,10 @@
 
 package syscall
 
+import (
+       "unsafe"
+)
+
 const _SYS_setgroups = SYS_SETGROUPS
 
 //sys  Dup2(oldfd int, newfd int) (err error)
@@ -30,7 +34,7 @@ const _SYS_setgroups = SYS_SETGROUPS
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  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)
@@ -86,6 +90,12 @@ func Time(t *Time_t) (tt Time_t, err error) {
 //sys  Utime(path string, buf *Utimbuf) (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 {
        return Timespec{Sec: sec, Nsec: nsec}
 }
index 5390277926f4d86cb3899bebee1e559d2d11bb37..159982b41e836280f997c1da30fd175118032fa7 100644 (file)
@@ -149,9 +149,9 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
        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)
        if err != ENOSYS {
                return err
@@ -173,7 +173,34 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
                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]) }
index 88ad8e4cd4b40a365da0cc9d9f01716183102c56..56bd6a64229e192775a05a6fa28de8119c44d3de 100644 (file)
@@ -6,6 +6,10 @@
 
 package syscall
 
+import (
+       "unsafe"
+)
+
 const _SYS_setgroups = SYS_SETGROUPS
 
 //sys  Dup2(oldfd int, newfd int) (err error)
@@ -36,7 +40,7 @@ const _SYS_setgroups = SYS_SETGROUPS
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  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)
@@ -65,6 +69,12 @@ const _SYS_setgroups = SYS_SETGROUPS
 //sys  Utime(path string, buf *Utimbuf) (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 {
        return Timespec{Sec: sec, Nsec: nsec}
 }
index 0ac4c5496ed7b7b72ec29ab1980127a2df271170..6c3846e4478bd30dcc7cf8e701d577eeee01aee4 100644 (file)
@@ -35,7 +35,7 @@ func EpollCreate(size int) (fd int, err error) {
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
 
@@ -142,6 +142,12 @@ func utimes(path string, tv *[2]Timeval) (err error) {
        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) SetPC(pc uint64) { r.Pc = pc }
index 46b252dc95ceb90b402f9a4f98de7e1bfc8d1f58..77f2b9d0c6bc641c7fcdaff93a13c9d467147e1f 100644 (file)
@@ -33,7 +33,7 @@ const _SYS_setgroups = SYS_SETGROUPS
 //sys  sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 //sys  Setfsgid(gid 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  Stat(path string, stat *Stat_t) (err error)
 //sys  Statfs(path string, buf *Statfs_t) (err error)
@@ -240,6 +240,12 @@ func Shutdown(s, how int) (err error) {
        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) SetPC(pc uint64) { r.Psw.Addr = pc }
index d8efb41d20cd7b07106ee6718381eab3fb2dca37..547ca836125c85743f6c3a6b884eb78add2bbed8 100644 (file)
@@ -221,7 +221,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)
 //sysnb        Setregid(rgid int, egid 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        Settimeofday(tp *Timeval) (err error)
 //sysnb        Setuid(uid int) (err error)
index 75217344df12511bb3b5a2414196441219decfdd..15c962623f0d2069896742859c93c4f61a9e33f8 100644 (file)
@@ -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)
 //sysnb        Setregid(rgid int, egid 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        Settimeofday(tp *Timeval) (err error)
 //sysnb        Setuid(uid int) (err error)
index 0363597c9e45b1edaa12bbe0521f06efd03ba6aa..1ebcbacc23a51fa4ac2a9896d70ed2534a63f52c 100644 (file)
@@ -474,7 +474,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)
 //sysnb        Setregid(rgid int, egid 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        Setuid(uid int) (err error)
 //sys  Shutdown(s int, how int) (err error) = libsocket.shutdown
index 39838a42e651c1ac874136242b569f47239d9610..8e404dba17cd6fda506eb442058060915baca1bb 100644 (file)
@@ -1258,7 +1258,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index ee78a572fcbebbdff0030238130251b5df1378e4..83b169ace5e56b971f18bd78327dbc75f0e8eb05 100644 (file)
@@ -1460,7 +1460,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index ac1eccf755978cd6446b0bc754dabd723528760b..c4ade8e6a083ab2377cb54210620642f4562f51c 100644 (file)
@@ -1460,7 +1460,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 5d5576d76ff64608d701aa5cee06a2f4323af85d..a591682b7dc6d76993bb9df53bc8d432088c3b9e 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index 04bad4acc922c95b3771f3150029ce58eb9bc2cc..f8d910f250fc931cdc6d8f915e9bf3a1613015b6 100644 (file)
@@ -1134,7 +1134,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index eeb9c0cb9b54e7eceb09435452b9137b04b75037..13d72e48a6f9e470bb5567565f1358227b95cffe 100644 (file)
@@ -1134,7 +1134,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 8ea4282ba45f439b9cc9264f7da96dd8bbb2ead7..e67e13b8861c708f772931ad26a9aaa895146c0e 100644 (file)
@@ -1134,7 +1134,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 73bf50559d63b3b17a4aa0e1cda733c49b83d44d..6f13d976f78feca9f37aa6b4ec29dd6750cfb033 100644 (file)
@@ -1134,7 +1134,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 36a3d7ed391c484ffa504677930d38832f0fa5eb..6f60db46fccc7de8ab0319e6143fd21eae595a24 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1387,7 +1387,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 07f328e1e2619ee2c6612cc65d86f7c93f4bc4cb..6e1139fe98e4e8c2b8aa82bc47b837400e6404d0 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1318,7 +1318,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index da16796abdf2bad4adbbffd0a827b182256a2704..cb0737b6a529a79732ab4b76d62b8bbc9b3e4bca 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1590,7 +1590,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 73321bd897cd6818f16d038d04712b35ee1ba175..6995aa83528515197c9aebf496fea869bd6c39f6 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1292,7 +1292,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index b3d703d86b933b683383cd0b0f80bfff7b503925..c20cd972a2b2cdb9efa8c7bd7c0d77849471fda7 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 1ef8eebe4fdd00a5b37b3dcbb6ce4c11600efd66..51e3e48f8efa40a61261aae696a46803a0a9927c 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1665,7 +1665,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 1ed877ce7ea404e0955ec501e4a32ff9b4bcab45..4920fcce962160e0a7de0026c6ef05d1e578fedf 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1307,7 +1307,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 3d7cc9e3733cc116ff5afe18140dfeee8ac2cc10..3f882d83cb2385179596128930faefb7307f9c44 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1307,7 +1307,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 59b49ddf747b70fb53b9dcadea20491af041d26c..b85f6ed40d9c7f13c98bb7c55289260fccb29fd2 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1665,7 +1665,7 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 93632bd1cb4f9a0ee6712eff2f2d805927651168..eca65b9a96df3917428980d470fd6c6bf9b4792c 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1380,7 +1380,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index fc8f6b7bcf97d0dfd5232517c8c4ed7910180e9b..d86a54083b708494a05d58a99f5f4d31169c14f8 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1380,7 +1380,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 0efa70715d61934840e6760ee152852a954e4ff2..569857153a08cb62e7d961886a81aab1ee097e13 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1292,7 +1292,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 568bb430a6426f6f2f6856c864eb9dae8107efbe..5dddb541afd7d679a8727802f94e509ee44f485b 100644 (file)
@@ -676,7 +676,7 @@ func PivotRoot(newroot string, putold string) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
@@ -1350,7 +1350,7 @@ func Setfsuid(uid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 9b9285920601a801bc1f401c6b9825ee3b06d3f4..e401d02d0201f9f10a375a1dca20eb24756d70a0 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index ac34c00b5a293553e6116e0c7dd045e52ae60fae..a4f217b948fbda4814e86a1c649726cca73379ce 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index 2be5e7baa4d32e2a365e20f45e1a4898687a76b8..1f55614f64088afac15b721f8317b2089407ba27 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index 02a652bbbb24638359fdf3f75904d2b8ab77f234..be33fcd4128e782c627007fd0c49bf4a02c0e33a 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index f7986d5ea5c94a95c3dd82d763cc10911e0af4d6..fa8cfed613c5699e40e1d04b9d2c91e8c05790dc 100644 (file)
@@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 605443d8904370ebad92fb8c2a39165bde919d66..4655be87acb3aa1e756b639699ea2291232bf40a 100644 (file)
@@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 0f2312fbc407bb341091fa14ba1534fcdd7ad9d0..bafce134a5f53dbd52f015b14912410798f28d97 100644 (file)
@@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 1367e2aba9ee74de01c42967540e8857fa316805..7fc3c67360f0ad8f2520f34b612dcc0891842069 100644 (file)
@@ -1387,7 +1387,7 @@ func libc_setreuid_trampoline()
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)
index 2cf84653191b57e5797f8f2087a8a76b46a71959..2a91c3683136930887247c1a81a0d2f85ea3ece4 100644 (file)
@@ -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
 
-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)
        if e1 != 0 {
                err = errnoErr(e1)
index a2bbeed844915c299091d5a7707d8531e7d82127..63e0a581b249064f1ee6353c1372fabfdee2bdc3 100644 (file)
@@ -959,7 +959,7 @@ func Setreuid(ruid int, euid int) (err error) {
 
 // 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)
        if e1 != 0 {
                err = errnoErr(e1)