update raw patch in POM take 2
Subsystems (2)
PATCH 1/1 update raw patch in POM take 2
Hello,
This is the cleaned up and fixed patch which should go into pom.
Changelog:
- fixed crash because of wrong refcnt [Pablo Neira]
- rediffed against 2.4.31 vanilla
- translated some comments into english ;)
This patch has been compile-tested and works together with the nf_reset patch.
Please consider applying to POM, thanks.
Best regards,
Roberto Nibali, ratz
Signature · 6 lines
------------------------------------------------------------- addr://Rathausgasse 31, CH-5001 Aarau tel://++41 62 823 9355 http://www.terreactive.com fax://++41 62 823 9356 ------------------------------------------------------------- terreActive AG Wir sichern Ihren Erfolg -------------------------------------------------------------
include/linux/netfilter_ipv4/ip_conntrack.h +3 -0
@@ -249,6 +249,9 @@/* Call me when a conntrack is destroyed. */ extern void (*ip_conntrack_destroyed)(struct ip_conntrack *conntrack); +/* Fake conntrack entry for untracked connections */ +extern struct ip_conntrack ip_conntrack_untracked; +/* Returns new sk_buff, or NULL */ struct sk_buff *ip_ct_gather_frags (struct sk_buff *skb,u_int32_t user);
include/linux/netfilter_ipv4/ipt_conntrack.h +1 -0
@@ -10,6 +10,7 @@#define IPT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1))#define IPT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2)) +#define IPT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3))/* flags, invflags: */ #define IPT_CONNTRACK_STATE 0x01
include/linux/netfilter_ipv4/ipt_state.h +1 -0
@@ -3,6 +3,7 @@#define IPT_STATE_BIT (ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))#define IPT_STATE_INVALID (1 << 0) +#define IPT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1))struct ipt_state_info {
include/linux/netfilter_ipv4.h +2 -0
@@ -51,6 +51,8 @@enum nf_ip_hook_priorities {NF_IP_PRI_FIRST =INT_MIN , +NF_IP_PRI_CONNTRACK_DEFRAG =-400 , +NF_IP_PRI_RAW =-300 ,NF_IP_PRI_CONNTRACK =-200 ,NF_IP_PRI_MANGLE =-150 ,NF_IP_PRI_NAT_DST =-100 ,
net/ipv4/netfilter/ip_conntrack_core.c +28 -15
73 lines not on this page · raw message
net/ipv4/netfilter/ip_conntrack_standalone.c +46 -1
82 lines not on this page · raw message
net/ipv4/netfilter/ip_nat_core.c +4 -0
@@ -1024,6 +1024,10 @@IP_NF_ASSERT (ip_conntrack_destroyed ==NULL ); ip_conntrack_destroyed = &ip_nat_cleanup_conntrack; +/* Initialize fake conntrack so that NAT will skip it */ + ip_conntrack_untracked.nat.info.initialized |= + (1 <<IP_NAT_MANIP_SRC ) | (1 <<IP_NAT_MANIP_DST ); +return 0 ; }
net/ipv4/netfilter/ipt_conntrack.c +3 -1
@@ -27,7 +27,9 @@#define FWINV (bool,invflg) ((bool) ^ !!(sinfo->invflags & invflg)) -if (ct) +if (skb->nfct == &ip_conntrack_untracked.infos[IP_CT_NEW ]) + statebit =IPT_CONNTRACK_STATE_UNTRACKED ; +else if (ct) statebit =IPT_CONNTRACK_STATE_BIT (ctinfo);else statebit =IPT_CONNTRACK_STATE_INVALID ;
net/ipv4/netfilter/ipt_state.c +3 -1
@@ -21,7 +21,9 @@enum ip_conntrack_info ctinfo;unsigned int statebit; -if (!ip_conntrack_get ((struct sk_buff *)skb, &ctinfo)) +if (skb->nfct == &ip_conntrack_untracked.infos[IP_CT_NEW ]) + statebit =IPT_STATE_UNTRACKED ; +else if (!ip_conntrack_get ((struct sk_buff *)skb, &ctinfo)) statebit =IPT_STATE_INVALID ;else statebit =IPT_STATE_BIT (ctinfo);
Quoted 3 lines · Roberto Nibali
Hello,
This is the cleaned up and fixed patch which should go into pom.
patchwork.netfilter.org led me to this old unapplied patch. I've now applied it as patchlets/raw/linux-2.4.31.patch. Please let me know if you need any further changes.
Signature · 5 lines
- Harald Welte <[email protected]> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie
Quoted 3 lines
patchwork.netfilter.org led me to this old unapplied patch. I've now applied it as
patchlets/raw/linux-2.4.31.patch. Please let me know if you need any further changes.
All is fine, it still applies to 2.4.32-rc1 + latest git. I have additionally added kdb to the source tree now to debug the oops when unloading the ip_conntrack module. I hope to be working on this again soon.
Thanks,
Roberto Nibali, ratz
Signature · 6 lines
------------------------------------------------------------- addr://Kasinostrasse 30, CH-5001 Aarau tel://++41 62 823 9355 http://www.terreactive.com fax://++41 62 823 9356 ------------------------------------------------------------- terreActive AG Wir sichern Ihren Erfolg -------------------------------------------------------------