]> Cypherpunks repositories - gostls13.git/commit
syscall: copy original rlimit before modifying
authorMichael Pratt <mpratt@google.com>
Mon, 2 Oct 2023 19:55:29 +0000 (15:55 -0400)
committerGopher Robot <gobot@golang.org>
Mon, 2 Oct 2023 23:19:38 +0000 (23:19 +0000)
commit122b35e838af8ab9c0d5027741d6f73cef09f966
treeadbd170fe1801b053b0fb509fb1495ccfb5a8304
parentef3171c5eb4bc22b79690afb36bbb1e681473ea0
syscall: copy original rlimit before modifying

CL 531516 converted origRlimitNofile from an atomic.Value to
atomic.Pointer[Rlimit]. i.e., it changed from storing a value to storing
a pointer.

After storing a pointer to lim, the remainder of this function
immediately modifies it, thus mutating the value pointer to by
origRlimitNofile (and thus defeating the point of origRlimitNofile).

This broke the android-amd64-emu builder because it is (apparently) the
only builder where the original RLIMIT_NOFILE Cur != Max.
TestRlimitRestored is skipped on every other builder.

Change-Id: I12076350eeddfd221823ad651e7e7eca59d2bdcd
Reviewed-on: https://go-review.googlesource.com/c/go/+/532100
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/syscall/rlimit.go