ipvs: avoid oops for passive FTP
Fix Passive FTP problem in ip_vs_ftp: - Do not oops in nf_nat_set_seq_adjust (adjust_tcp_sequence) when iptable_nat module is not loaded Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
5e4e7573e1
Коммит
7bcbf81a22
|
@ -45,6 +45,7 @@
|
||||||
#include <linux/netfilter.h>
|
#include <linux/netfilter.h>
|
||||||
#include <net/netfilter/nf_conntrack.h>
|
#include <net/netfilter/nf_conntrack.h>
|
||||||
#include <net/netfilter/nf_conntrack_expect.h>
|
#include <net/netfilter/nf_conntrack_expect.h>
|
||||||
|
#include <net/netfilter/nf_nat.h>
|
||||||
#include <net/netfilter/nf_nat_helper.h>
|
#include <net/netfilter/nf_nat_helper.h>
|
||||||
#include <linux/gfp.h>
|
#include <linux/gfp.h>
|
||||||
#include <net/protocol.h>
|
#include <net/protocol.h>
|
||||||
|
@ -359,7 +360,7 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
|
||||||
buf_len = strlen(buf);
|
buf_len = strlen(buf);
|
||||||
|
|
||||||
ct = nf_ct_get(skb, &ctinfo);
|
ct = nf_ct_get(skb, &ctinfo);
|
||||||
if (ct && !nf_ct_is_untracked(ct)) {
|
if (ct && !nf_ct_is_untracked(ct) && nfct_nat(ct)) {
|
||||||
/* If mangling fails this function will return 0
|
/* If mangling fails this function will return 0
|
||||||
* which will cause the packet to be dropped.
|
* which will cause the packet to be dropped.
|
||||||
* Mangling can only fail under memory pressure,
|
* Mangling can only fail under memory pressure,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче