Patch "netfilter: nf_nat_h323: fix logical-not-parentheses warning" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
netfilter: nf_nat_h323: fix logical-not-parentheses warning
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
netfilter-nf_nat_h323-fix-logical-not-parentheses-warning.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
eee6ebbac18a189ef33d25ea9b8bcae176515e49Mon Sep 17 00:00:00 2001
From: Nick Desaulniers <[email protected]>
Date: Fri, 11 Aug 2017 11:16:07 -0700
Subject: netfilter: nf_nat_h323: fix logical-not-parentheses warning
From: Nick Desaulniers <[email protected]>
commit eee6ebbac18a189ef33d25ea9b8bcae176515e49 upstream.
Clang produces the following warning:
net/ipv4/netfilter/nf_nat_h323.c:553:6: error:
logical not is only applied to the left hand side of this comparison
[-Werror,-Wlogical-not-parentheses]
if (!set_h225_addr(skb, protoff, data, dataoff, taddr,
^
add parentheses after the '!' to evaluate the comparison first add parentheses around left hand side expression to silence this warning
There's not necessarily a bug here, but it's cleaner to return early, ex:
if (x)
return
...
rather than:
if (x == 0)
...
else
return
Also added a return code check that seemed to be missing in one instance.
--- net/ipv4/netfilter/nf_nat_h323.c | 57 ++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 27 deletions(-)
net/ipv4/netfilter/nf_nat_h323.c +30 -27
@@ -252,16 +252,16 @@ static int nat_rtp_rtcp(struct sk_buff *if (set_h245_addr (skb, protoff, data, dataoff, taddr, &ct->tuplehash[!dir].tuple.dst.u3,htons ((port &htons (1 )) ? nated_port +1 : - nated_port)) ==0 ) { -/* Save ports */ - info->rtp_port[i][dir] = rtp_port; - info->rtp_port[i][!dir] =htons (nated_port); - }else { + nated_port))) {nf_ct_unexpect_related (rtp_exp);nf_ct_unexpect_related (rtcp_exp);return -1 ; } +/* Save ports */ + info->rtp_port[i][dir] = rtp_port; + info->rtp_port[i][!dir] =htons (nated_port); +/* Success */ pr_debug("nf_nat_h323: expect RTP %pI4:%hu->%pI4:%hu\n", &rtp_exp->tuple.src.u3.ip,
@@ -370,15 +370,15 @@ static int nat_h245(struct sk_buff *skb,/* Modify signal */ if (set_h225_addr (skb, protoff, data, dataoff, taddr, &ct->tuplehash[!dir].tuple.dst.u3, -htons (nated_port)) ==0 ) { -/* Save ports */ - info->sig_port[dir] = port; - info->sig_port[!dir] =htons (nated_port); - }else { +htons (nated_port))) {nf_ct_unexpect_related (exp);return -1 ; } +/* Save ports */ + info->sig_port[dir] = port; + info->sig_port[!dir] =htons (nated_port); + pr_debug("nf_nat_q931: expect H.245 %pI4:%hu->%pI4:%hu\n", &exp->tuple.src.u3.ip, ntohs(exp->tuple.src.u.tcp.port),
@@ -462,24 +462,27 @@ static int nat_q931(struct sk_buff *skb,/* Modify signal */ if (set_h225_addr (skb, protoff, data,0 , &taddr[idx], &ct->tuplehash[!dir].tuple.dst.u3, -htons (nated_port)) ==0 ) { -/* Save ports */ - info->sig_port[dir] = port; - info->sig_port[!dir] =htons (nated_port); - -/* Fix for Gnomemeeting */ -if (idx >0 && -get_h225_addr (ct, *data, &taddr[0 ], &addr, &port) && - (ntohl (addr.ip) &0xff000000 ) ==0x7f000000 ) { -set_h225_addr (skb, protoff, data,0 , &taddr[0 ], - &ct->tuplehash[!dir].tuple.dst.u3, - info->sig_port[!dir]); - } - }else { +htons (nated_port))) {nf_ct_unexpect_related (exp);return -1 ; } +/* Save ports */ + info->sig_port[dir] = port; + info->sig_port[!dir] =htons (nated_port); + +/* Fix for Gnomemeeting */ +if (idx >0 && +get_h225_addr (ct, *data, &taddr[0 ], &addr, &port) && + (ntohl (addr.ip) &0xff000000 ) ==0x7f000000 ) { +if (set_h225_addr (skb, protoff, data,0 , &taddr[0 ], + &ct->tuplehash[!dir].tuple.dst.u3, + info->sig_port[!dir])) { +nf_ct_unexpect_related (exp); +return -1 ; + } + } +/* Success */ pr_debug("nf_nat_ras: expect Q.931 %pI4:%hu->%pI4:%hu\n", &exp->tuple.src.u3.ip,
@@ -550,9 +553,9 @@ static int nat_callforwarding(struct sk_ }/* Modify signal */ -if (!set_h225_addr (skb, protoff, data, dataoff, taddr, - &ct->tuplehash[!dir].tuple.dst.u3, -htons (nated_port)) ==0 ) { +if (set_h225_addr (skb, protoff, data, dataoff, taddr, + &ct->tuplehash[!dir].tuple.dst.u3, +htons (nated_port))) {nf_ct_unexpect_related (exp);return -1 ; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/netfilter-nf_nat_h323-fix-logical-not-parentheses-warning.patch