diff options
Diffstat (limited to 'net/bridge')
-rw-r--r-- | net/bridge/netfilter/ebtables.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c index 6d69631b9f4d..d9a8c05d995d 100644 --- a/net/bridge/netfilter/ebtables.c +++ b/net/bridge/netfilter/ebtables.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
27 | #include <linux/smp.h> | 27 | #include <linux/smp.h> |
28 | #include <linux/cpumask.h> | 28 | #include <linux/cpumask.h> |
29 | #include <linux/audit.h> | ||
29 | #include <net/sock.h> | 30 | #include <net/sock.h> |
30 | /* needed for logical [in,out]-dev filtering */ | 31 | /* needed for logical [in,out]-dev filtering */ |
31 | #include "../br_private.h" | 32 | #include "../br_private.h" |
@@ -1058,6 +1059,20 @@ static int do_replace_finish(struct net *net, struct ebt_replace *repl, | |||
1058 | vfree(table); | 1059 | vfree(table); |
1059 | 1060 | ||
1060 | vfree(counterstmp); | 1061 | vfree(counterstmp); |
1062 | |||
1063 | #ifdef CONFIG_AUDIT | ||
1064 | if (audit_enabled) { | ||
1065 | struct audit_buffer *ab; | ||
1066 | |||
1067 | ab = audit_log_start(current->audit_context, GFP_KERNEL, | ||
1068 | AUDIT_NETFILTER_CFG); | ||
1069 | if (ab) { | ||
1070 | audit_log_format(ab, "table=%s family=%u entries=%u", | ||
1071 | repl->name, AF_BRIDGE, repl->nentries); | ||
1072 | audit_log_end(ab); | ||
1073 | } | ||
1074 | } | ||
1075 | #endif | ||
1061 | return ret; | 1076 | return ret; |
1062 | 1077 | ||
1063 | free_unlock: | 1078 | free_unlock: |