From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941465AbcKOItY (ORCPT ); Tue, 15 Nov 2016 03:49:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:54874 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752242AbcKOItT (ORCPT ); Tue, 15 Nov 2016 03:49:19 -0500 Date: Tue, 15 Nov 2016 03:49:15 -0500 From: Richard Guy Briggs To: Paul Moore Cc: linux-audit@redhat.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] audit: skip sessionid sentinel value when auto-incrementing Message-ID: <20161115084915.GI27818@madcap2.tricolour.ca> References: <2e99896c655ae31ea481240692a720e9701b0a76.1478758980.git.rgb@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 15 Nov 2016 08:49:19 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016-11-14 15:17, Paul Moore wrote: > On Thu, Nov 10, 2016 at 1:41 AM, Richard Guy Briggs 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 > > --- > > 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. > > 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 Kernel Security Engineering, Base Operating Systems, Red Hat Remote, Ottawa, Canada Voice: +1.647.777.2635, Internal: (81) 32635