diff options
author | Harald Welte <laforge@netfilter.org> | 2005-08-09 23:20:54 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 18:51:08 -0400 |
commit | 210a9ebef2d1bd32d9e9d81c84d538e237769cdb (patch) | |
tree | b4ad1d992f137020333090c0fae6c898ee77fe5b | |
parent | f682faefb8c6045468c4cf0fe435128352683c22 (diff) |
[NETFILTER]: ip{6}_queue: prevent unregistration race with nfnetlink_queue
Since nfnetlink_queue can override ip{6}_queue as queue handlers, we
can no longer blindly unregister whoever is registered for PF_INET[6],
but only unregister ourselves.
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/netfilter/ip_queue.c | 2 | ||||
-rw-r--r-- | net/ipv6/netfilter/ip6_queue.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c index cfc886f382ac..629de649f130 100644 --- a/net/ipv4/netfilter/ip_queue.c +++ b/net/ipv4/netfilter/ip_queue.c | |||
@@ -692,7 +692,7 @@ init_or_cleanup(int init) | |||
692 | return status; | 692 | return status; |
693 | 693 | ||
694 | cleanup: | 694 | cleanup: |
695 | nf_unregister_queue_handler(PF_INET); | 695 | nf_unregister_queue_handlers(&ipq_enqueue_packet); |
696 | synchronize_net(); | 696 | synchronize_net(); |
697 | ipq_flush(NF_DROP); | 697 | ipq_flush(NF_DROP); |
698 | 698 | ||
diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c index 5af4cee93d9b..56ffec3568fa 100644 --- a/net/ipv6/netfilter/ip6_queue.c +++ b/net/ipv6/netfilter/ip6_queue.c | |||
@@ -687,7 +687,7 @@ init_or_cleanup(int init) | |||
687 | return status; | 687 | return status; |
688 | 688 | ||
689 | cleanup: | 689 | cleanup: |
690 | nf_unregister_queue_handler(PF_INET6); | 690 | nf_unregister_queue_handlers(&ipq_enqueue_packet); |
691 | synchronize_net(); | 691 | synchronize_net(); |
692 | ipq_flush(NF_DROP); | 692 | ipq_flush(NF_DROP); |
693 | 693 | ||