diff options
Diffstat (limited to 'net/netfilter/x_tables.c')
-rw-r--r-- | net/netfilter/x_tables.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 2a7eb1da5d0..aece6c2d134 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c | |||
@@ -209,6 +209,11 @@ struct xt_match *xt_find_match(u8 af, const char *name, u8 revision) | |||
209 | } | 209 | } |
210 | } | 210 | } |
211 | mutex_unlock(&xt[af].mutex); | 211 | mutex_unlock(&xt[af].mutex); |
212 | |||
213 | if (af != NFPROTO_UNSPEC) | ||
214 | /* Try searching again in the family-independent list */ | ||
215 | return xt_find_match(NFPROTO_UNSPEC, name, revision); | ||
216 | |||
212 | return ERR_PTR(err); | 217 | return ERR_PTR(err); |
213 | } | 218 | } |
214 | EXPORT_SYMBOL(xt_find_match); | 219 | EXPORT_SYMBOL(xt_find_match); |
@@ -234,6 +239,11 @@ struct xt_target *xt_find_target(u8 af, const char *name, u8 revision) | |||
234 | } | 239 | } |
235 | } | 240 | } |
236 | mutex_unlock(&xt[af].mutex); | 241 | mutex_unlock(&xt[af].mutex); |
242 | |||
243 | if (af != NFPROTO_UNSPEC) | ||
244 | /* Try searching again in the family-independent list */ | ||
245 | return xt_find_target(NFPROTO_UNSPEC, name, revision); | ||
246 | |||
237 | return ERR_PTR(err); | 247 | return ERR_PTR(err); |
238 | } | 248 | } |
239 | EXPORT_SYMBOL(xt_find_target); | 249 | EXPORT_SYMBOL(xt_find_target); |