Skip to content

Commit

Permalink
[NETFILTER]: Fix logging regression
Browse files Browse the repository at this point in the history
Loading one of the LOG target fails if a different target has already
registered itself as backend for the same family. This can affect the
ipt_LOG and ipt_ULOG modules when both are loaded.

Reported and tested by: <t.artem@mailcity.com>

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Jul 24, 2007
1 parent ca983ce commit 7e2acc7
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 18 deletions.
6 changes: 2 additions & 4 deletions net/bridge/netfilter/ebt_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,8 @@ static int __init ebt_log_init(void)
ret = ebt_register_watcher(&log);
if (ret < 0)
return ret;
ret = nf_log_register(PF_BRIDGE, &ebt_log_logger);
if (ret < 0 && ret != -EEXIST)
ebt_unregister_watcher(&log);
return ret;
nf_log_register(PF_BRIDGE, &ebt_log_logger);
return 0;
}

static void __exit ebt_log_fini(void)
Expand Down
8 changes: 2 additions & 6 deletions net/bridge/netfilter/ebt_ulog.c
Original file line number Diff line number Diff line change
Expand Up @@ -308,12 +308,8 @@ static int __init ebt_ulog_init(void)
else if ((ret = ebt_register_watcher(&ulog)))
sock_release(ebtulognl->sk_socket);

if (nf_log_register(PF_BRIDGE, &ebt_ulog_logger) < 0) {
printk(KERN_WARNING "ebt_ulog: not logging via ulog "
"since somebody else already registered for PF_BRIDGE\n");
/* we cannot make module load fail here, since otherwise
* ebtables userspace would abort */
}
if (ret == 0)
nf_log_register(PF_BRIDGE, &ebt_ulog_logger);

return ret;
}
Expand Down
6 changes: 2 additions & 4 deletions net/ipv4/netfilter/ipt_LOG.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,10 +479,8 @@ static int __init ipt_log_init(void)
ret = xt_register_target(&ipt_log_reg);
if (ret < 0)
return ret;
ret = nf_log_register(PF_INET, &ipt_log_logger);
if (ret < 0 && ret != -EEXIST)
xt_unregister_target(&ipt_log_reg);
return ret;
nf_log_register(PF_INET, &ipt_log_logger);
return 0;
}

static void __exit ipt_log_fini(void)
Expand Down
6 changes: 2 additions & 4 deletions net/ipv6/netfilter/ip6t_LOG.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,10 +493,8 @@ static int __init ip6t_log_init(void)
ret = xt_register_target(&ip6t_log_reg);
if (ret < 0)
return ret;
ret = nf_log_register(PF_INET6, &ip6t_logger);
if (ret < 0 && ret != -EEXIST)
xt_unregister_target(&ip6t_log_reg);
return ret;
nf_log_register(PF_INET6, &ip6t_logger);
return 0;
}

static void __exit ip6t_log_fini(void)
Expand Down

0 comments on commit 7e2acc7

Please sign in to comment.