mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge git://1984.lsi.us.es/nf
Pable Neira Ayuso says: ==================== The following five patches contain fixes for 3.6-rc, they are: * Two fixes for message parsing in the SIP conntrack helper, from Patrick McHardy. * One fix for the SIP helper introduced in the user-space cthelper infrastructure, from Patrick McHardy. * fix missing appropriate locking while modifying one conntrack entry from the nfqueue integration code, from myself. * fix possible access to uninitiliazed timer in the nf_conntrack expectation infrastructure, from myself. ==================== Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
commit
6c71bec66a
5 changed files with 90 additions and 49 deletions
|
|
@ -148,7 +148,7 @@ static unsigned int ip_nat_sip(struct sk_buff *skb, unsigned int dataoff,
|
|||
if (ct_sip_parse_header_uri(ct, *dptr, NULL, *datalen,
|
||||
hdr, NULL, &matchoff, &matchlen,
|
||||
&addr, &port) > 0) {
|
||||
unsigned int matchend, poff, plen, buflen, n;
|
||||
unsigned int olen, matchend, poff, plen, buflen, n;
|
||||
char buffer[sizeof("nnn.nnn.nnn.nnn:nnnnn")];
|
||||
|
||||
/* We're only interested in headers related to this
|
||||
|
|
@ -163,17 +163,18 @@ static unsigned int ip_nat_sip(struct sk_buff *skb, unsigned int dataoff,
|
|||
goto next;
|
||||
}
|
||||
|
||||
olen = *datalen;
|
||||
if (!map_addr(skb, dataoff, dptr, datalen, matchoff, matchlen,
|
||||
&addr, port))
|
||||
return NF_DROP;
|
||||
|
||||
matchend = matchoff + matchlen;
|
||||
matchend = matchoff + matchlen + *datalen - olen;
|
||||
|
||||
/* The maddr= parameter (RFC 2361) specifies where to send
|
||||
* the reply. */
|
||||
if (ct_sip_parse_address_param(ct, *dptr, matchend, *datalen,
|
||||
"maddr=", &poff, &plen,
|
||||
&addr) > 0 &&
|
||||
&addr, true) > 0 &&
|
||||
addr.ip == ct->tuplehash[dir].tuple.src.u3.ip &&
|
||||
addr.ip != ct->tuplehash[!dir].tuple.dst.u3.ip) {
|
||||
buflen = sprintf(buffer, "%pI4",
|
||||
|
|
@ -187,7 +188,7 @@ static unsigned int ip_nat_sip(struct sk_buff *skb, unsigned int dataoff,
|
|||
* from which the server received the request. */
|
||||
if (ct_sip_parse_address_param(ct, *dptr, matchend, *datalen,
|
||||
"received=", &poff, &plen,
|
||||
&addr) > 0 &&
|
||||
&addr, false) > 0 &&
|
||||
addr.ip == ct->tuplehash[dir].tuple.dst.u3.ip &&
|
||||
addr.ip != ct->tuplehash[!dir].tuple.src.u3.ip) {
|
||||
buflen = sprintf(buffer, "%pI4",
|
||||
|
|
|
|||
Loading…
Reference in a new issue