On Wed, Jun 24, 2020 at 08:34:23AM -0400, Richard Guy Briggs wrote:
 On 2020-06-24 12:03, Pablo Neira Ayuso wrote:
 > On Thu, Jun 04, 2020 at 09:20:49AM -0400, Richard Guy Briggs wrote: 
[...]
 > > diff --git a/net/netfilter/nf_tables_api.c
b/net/netfilter/nf_tables_api.c
 > > index 3558e76e2733..b9e7440cc87d 100644
 > > --- a/net/netfilter/nf_tables_api.c
 > > +++ b/net/netfilter/nf_tables_api.c
 > > @@ -12,6 +12,7 @@
 > >  #include <linux/netlink.h>
 > >  #include <linux/vmalloc.h>
 > >  #include <linux/rhashtable.h>
 > > +#include <linux/audit.h>
 > >  #include <linux/netfilter.h>
 > >  #include <linux/netfilter/nfnetlink.h>
 > >  #include <linux/netfilter/nf_tables.h>
 > > @@ -693,6 +694,16 @@ static void nf_tables_table_notify(const struct nft_ctx
*ctx, int event)
 > >  {
 > >  	struct sk_buff *skb;
 > >  	int err;
 > > +	char *buf = kasprintf(GFP_KERNEL, "%s:%llu;?:0",
 > > +			      ctx->table->name, ctx->table->handle);
 > > +
 > > +	audit_log_nfcfg(buf,
 > > +			ctx->family,
 > > +			ctx->table->use,
 > > +			event == NFT_MSG_NEWTABLE ?
 > > +				AUDIT_NFT_OP_TABLE_REGISTER :
 > > +				AUDIT_NFT_OP_TABLE_UNREGISTER);
 > > +	kfree(buf);
 > 
 > As a follow up: Would you wrap this code into a function?
 > 
 >         nft_table_audit()
 > 
 > Same thing for other pieces of code below.
 
 If I'm guessing right, you are asking for a supplementary follow-up
 cleanup patch to this one (or are you nacking this patch)? 
No nack, it's just that I'd prefer to see this wrapped in a function.
I think your patch is already in the audit tree.
 Also, I gather you would like to see the kasprintf and kfree hidden
in
 nft_table_audit(), handing this function at least 8 parameters?  This
 sounds pretty messy given the format of the table field. 
I think you can pass ctx and the specific object, e.g. table, in most
cases? There is also event and the gfp_flags. That counts 4 here, but
maybe I'm overlooking something.
Thanks.