summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavinder Konka <rkonka@codeaurora.org>2015-03-10 16:37:00 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:15:01 -0700
commit90f5ff1935bf8a86e6fe5eaaa1a97256e4d72712 (patch)
tree23594610f23134c1cc85b74ebdc1b5985fd86030
parentea8b061e0df78fe100986042c9c6d10a2cc89e08 (diff)
netfilter: Fix to MT call issue
Changes to store forced port only in the original direction. This resolves the MT call issue where destination port is incorrectly translated to forced_port. Change-Id: I1b1c407c4beb8185ada0b005b1cd1034cb975141 Signed-off-by: Ravinder Konka <rkonka@codeaurora.org>
-rw-r--r--net/netfilter/nf_conntrack_sip.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 885b4aba3695..0b1f01a0f0fb 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -1425,7 +1425,8 @@ static int process_sip_request(struct sk_buff *skb, unsigned int protoff,
SIP_HDR_VIA_UDP, NULL, &matchoff,
&matchlen, &addr, &port) > 0 &&
port != ct->tuplehash[dir].tuple.src.u.udp.port &&
- nf_inet_addr_cmp(&addr, &ct->tuplehash[dir].tuple.src.u3))
+ nf_inet_addr_cmp(&addr, &ct->tuplehash[dir].tuple.src.u3) &&
+ (dir == IP_CT_DIR_ORIGINAL))
ct_sip_info->forced_dport = port;
for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) {