[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgs5+3MLjG_hsQcKdamOcTsJLsk47tV12FfD_0f2h47Rg@mail.gmail.com>
Date: Tue, 29 Jun 2021 09:34:17 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: "Eric W. Biederman" <ebiederm@...ssion.com>
Cc: Alexey Gladkov <legion@...nel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Containers <containers@...ts.linux.dev>
Subject: Re: [GIT PULL] ucounts: Count rlimits in each user namespace
On Tue, Jun 29, 2021 at 8:52 AM Eric W. Biederman <ebiederm@...ssion.com> wrote:
>
> Linus Torvalds <torvalds@...ux-foundation.org> writes:
>
> > Why the "sigpending < LONG_MAX" test in that
> >
> > if (override_rlimit || (sigpending < LONG_MAX && sigpending <=
> > task_rlimit(t, RLIMIT_SIGPENDING))) {
> > thing?
>
> On second look that sigpending < LONG_MAX check is necessary. When
> inc_rlimit_ucounts detects a problem it returns LONG_MAX.
I saw that, but _without_ that test you'd be left with just that
sigpending <= task_rlimit(t, RLIMIT_SIGPENDING)
and if task_rlimit() is LONG_MAX, then that means "no limits", so it is all ok.
IOW, afaik even _if_ sigpending ends up being LONG_MAX, the
conditional does the right thing without that "sigpending < LONG_MAX"
test.
Linus
Powered by blists - more mailing lists