Skip to content

Commit

Permalink
netfilter: nf_ct_sip: don't drop packets with offsets pointing outsid…
Browse files Browse the repository at this point in the history
…e the packet

Some Cisco phones create huge messages that are spread over multiple packets.
After calculating the offset of the SIP body, it is validated to be within
the packet and the packet is dropped otherwise. This breaks operation of
these phones. Since connection tracking is supposed to be passive, just let
those packets pass unmodified and untracked.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Patrick McHardy authored and Pablo Neira Ayuso committed Apr 6, 2013
1 parent 53f6318 commit 3a7b21e
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions net/netfilter/nf_conntrack_sip.c
Original file line number Diff line number Diff line change
Expand Up @@ -1593,10 +1593,8 @@ static int sip_help_tcp(struct sk_buff *skb, unsigned int protoff,
end += strlen("\r\n\r\n") + clen;

msglen = origlen = end - dptr;
if (msglen > datalen) {
nf_ct_helper_log(skb, ct, "incomplete/bad SIP message");
return NF_DROP;
}
if (msglen > datalen)
return NF_ACCEPT;

ret = process_sip_msg(skb, ct, protoff, dataoff,
&dptr, &msglen);
Expand Down

0 comments on commit 3a7b21e

Please sign in to comment.