From mboxrd@z Thu Jan 1 00:00:00 1970 From: Casey Schaufler Subject: Re: [PATCH 2/3] smack: call WARN_ONCE() instead of calling audit_log_start() Date: Fri, 06 Dec 2013 10:40:56 -0800 Message-ID: <52A21A38.40802@schaufler-ca.com> References: <1382713941.2954.19.camel@flatline.rdu.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.redhat.com (ext-mx11.extmail.prod.ext.phx2.redhat.com [10.5.110.16]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rB6IexAV028445 for ; Fri, 6 Dec 2013 13:40:59 -0500 Received: from smtp106.biz.mail.ne1.yahoo.com (smtp106.biz.mail.ne1.yahoo.com [98.138.207.13]) by mx1.redhat.com (8.14.4/8.14.4) with SMTP id rB6IevEm015536 for ; Fri, 6 Dec 2013 13:40:58 -0500 In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com To: Richard Guy Briggs , linux-audit@redhat.com, linux-kernel@vger.kernel.org List-Id: linux-audit@redhat.com On 12/4/2013 6:45 PM, Richard Guy Briggs wrote: > Remove the call to audit_log() (which call audit_log_start()) and deal with > the errors in the caller, logging only once if the condition is met. Calling > audit_log_start() in this location makes buffer allocation and locking more > complicated in the calling tree (audit_filter_user()). > > Signed-off-by: Richard Guy Briggs I'm not opposed to this change, but have you actually tried it? > --- > security/smack/smack_lsm.c | 5 ++--- > 1 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c > index 8825375..185e2e7 100644 > --- a/security/smack/smack_lsm.c > +++ b/security/smack/smack_lsm.c > @@ -3615,9 +3615,8 @@ static int smack_audit_rule_match(u32 secid, u32 field, u32 op, void *vrule, > struct smack_known *skp; > char *rule = vrule; > > - if (!rule) { > - audit_log(actx, GFP_ATOMIC, AUDIT_SELINUX_ERR, > - "Smack: missing rule\n"); > + if (unlikely(!rule)) { > + WARN_ONCE(1, "Smack: missing rule\n"); > return -ENOENT; > } >