Subject: Re: linux-next: manual merge of the audit tree with Linus' tree

From: Richard Guy Briggs <[email-masked]>
Date: Fri, 24 Mar 2017 02:33:19 -0400

On 2017-03-24 13:18, Stephen Rothwell wrote:
> Hi Paul,

Hi Stephen,

> Today's linux-next merge of the audit tree got a conflict in:
> 
>   net/netfilter/xt_AUDIT.c
> 
> between commit:
> 
>   613dbd95723a ("netfilter: x_tables: move hook state into xt_action_param structure")
> 
> from Linus' tree and commit:
> 
>   36fe46d172e5 ("audit: normalize NETFILTER_PKT")
> 
> from the audit tree.

Lovely.  The fix looks fine to me.  Thanks!

> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> P.S. You may want to consider a newer base for your tree ...
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc net/netfilter/xt_AUDIT.c
> index 19247a17e511,582ee54f6664..000000000000
> --- a/net/netfilter/xt_AUDIT.c
> +++ b/net/netfilter/xt_AUDIT.c
> @@@ -131,39 -78,24 +78,24 @@@ audit_tg(struct sk_buff *skb, const str
>   	if (ab == NULL)
>   		goto errout;
>   
> - 	audit_log_format(ab, "action=%hhu hook=%u len=%u inif=%s outif=%s",
> - 			 info->type, xt_hooknum(par), skb->len,
> - 			 xt_in(par) ? xt_inname(par) : "?",
> - 			 xt_out(par) ? xt_outname(par) : "?");
> - 
> - 	if (skb->mark)
> - 		audit_log_format(ab, " mark=%#x", skb->mark);
> - 
> - 	if (skb->dev && skb->dev->type == ARPHRD_ETHER) {
> - 		audit_log_format(ab, " smac=%pM dmac=%pM macproto=0x%04x",
> - 				 eth_hdr(skb)->h_source, eth_hdr(skb)->h_dest,
> - 				 ntohs(eth_hdr(skb)->h_proto));
> - 
> - 		if (xt_family(par) == NFPROTO_BRIDGE) {
> - 			switch (eth_hdr(skb)->h_proto) {
> - 			case htons(ETH_P_IP):
> - 				audit_ip4(ab, skb);
> - 				break;
> - 
> - 			case htons(ETH_P_IPV6):
> - 				audit_ip6(ab, skb);
> - 				break;
> - 			}
> - 		}
> - 	}
> + 	audit_log_format(ab, "mark=%#x", skb->mark);
>   
>  -	switch (par->family) {
>  +	switch (xt_family(par)) {
> + 	case NFPROTO_BRIDGE:
> + 		switch (eth_hdr(skb)->h_proto) {
> + 		case htons(ETH_P_IP):
> + 			fam = audit_ip4(ab, skb) ? NFPROTO_IPV4 : -1;
> + 			break;
> + 		case htons(ETH_P_IPV6):
> + 			fam = audit_ip6(ab, skb) ? NFPROTO_IPV6 : -1;
> + 			break;
> + 		}
> + 		break;
>   	case NFPROTO_IPV4:
> - 		audit_ip4(ab, skb);
> + 		fam = audit_ip4(ab, skb) ? NFPROTO_IPV4 : -1;
>   		break;
> - 
>   	case NFPROTO_IPV6:
> - 		audit_ip6(ab, skb);
> + 		fam = audit_ip6(ab, skb) ? NFPROTO_IPV6 : -1;
>   		break;
>   	}
>   

- RGB

--
Richard Guy Briggs <[email-masked]>
Kernel Security Engineering, Base Operating Systems, Red Hat
Remote, Ottawa, Canada
Voice: +1.647.777.2635, Internal: (81) 32635