Messages in this thread | | | From | Paul Moore <> | Date | Thu, 17 Nov 2016 18:34:47 -0500 | Subject | Re: [PATCH] audit: skip sessionid sentinel value when auto-incrementing |
| |
On Tue, Nov 15, 2016 at 3:49 AM, Richard Guy Briggs <rgb@redhat.com> wrote: > On 2016-11-14 15:17, Paul Moore wrote: >> On Thu, Nov 10, 2016 at 1:41 AM, Richard Guy Briggs <rgb@redhat.com> wrote: >> > The value (unsigned int)-1 is used as a sentinel to indicate the >> > sessionID is unset. Skip this value when the session_id value wraps. >> > >> > Signed-off-by: Richard Guy Briggs <rgb@redhat.com> >> > --- >> > kernel/auditsc.c | 5 ++++- >> > 1 files changed, 4 insertions(+), 1 deletions(-) >> >> Since we haven't merged the session ID kernel patches into audit#next >> yet, why don't you just squash this patch in with the session ID patch >> and resubmit upstream in one nice neat patch. > > This was an existing bug regardless of new functionality added, so the > fix should not be buried in a new feature patch.
No, it's not an existing bug. The existing code simply reports/logs the session ID, it doesn't filter on it, so there are no magic values to worry about.
>> > diff --git a/kernel/auditsc.c b/kernel/auditsc.c >> > index 5abf1dc..e414dfa 100644 >> > --- a/kernel/auditsc.c >> > +++ b/kernel/auditsc.c >> > @@ -2025,8 +2025,11 @@ int audit_set_loginuid(kuid_t loginuid) >> > goto out; >> > >> > /* are we setting or clearing? */ >> > - if (uid_valid(loginuid)) >> > + if (uid_valid(loginuid)) { >> > sessionid = (unsigned int)atomic_inc_return(&session_id); >> > + if (unlikely(sessionid == (unsigned int)-1)) >> > + sessionid = (unsigned int)atomic_inc_return(&session_id); >> > + } >> > >> > task->sessionid = sessionid; >> > task->loginuid = loginuid; >> >> paul moore > > - RGB > > -- > Richard Guy Briggs <rgb@redhat.com> > Kernel Security Engineering, Base Operating Systems, Red Hat > Remote, Ottawa, Canada > Voice: +1.647.777.2635, Internal: (81) 32635
-- paul moore www.paul-moore.com
| |