SELinux: indicate fatal error in compat netfilter code

The SELinux ip postroute code indicates when policy rejected a packet and
passes the error back up the stack.  The compat code does not.  This patch
sends the same kind of error back up the stack in the compat code.

Based-on-patch-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
Reviewed-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Paris 2010-11-23 06:28:08 +00:00 committed by David S. Miller
parent 04f6d70f6e
commit 2fe66ec242

View file

@ -4524,11 +4524,11 @@ static unsigned int selinux_ip_postroute_compat(struct sk_buff *skb,
if (selinux_secmark_enabled()) if (selinux_secmark_enabled())
if (avc_has_perm(sksec->sid, skb->secmark, if (avc_has_perm(sksec->sid, skb->secmark,
SECCLASS_PACKET, PACKET__SEND, &ad)) SECCLASS_PACKET, PACKET__SEND, &ad))
return NF_DROP; return NF_DROP_ERR(-ECONNREFUSED);
if (selinux_policycap_netpeer) if (selinux_policycap_netpeer)
if (selinux_xfrm_postroute_last(sksec->sid, skb, &ad, proto)) if (selinux_xfrm_postroute_last(sksec->sid, skb, &ad, proto))
return NF_DROP; return NF_DROP_ERR(-ECONNREFUSED);
return NF_ACCEPT; return NF_ACCEPT;
} }