Subject: netfilter 01/02: nf_conntrack_sip: fix off-by-one in compact header parsing

From: Patrick McHardy <[email-masked]>
Date: Tue, 2 Feb 2010 17:27:38 +0100 (MET)

commit 135d01899b1fba17045961febff7e5141db6048f
Author: Patrick McHardy <[email-masked]>
Date:   Tue Jan 19 19:06:59 2010 +0100

    netfilter: nf_conntrack_sip: fix off-by-one in compact header parsing
    
    In a string like "v:SIP/2.0..." it was checking for !isalpha('S') when it
    meant to be inspecting the ':'.
    
    Patch by Greg Alexander <[email-masked]>
    
    Signed-off-by: Patrick McHardy <[email-masked]>

diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 4b57216..023966b 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -376,7 +376,7 @@ int ct_sip_get_header(const struct nf_conn *ct, const char *dptr,
 			dptr += hdr->len;
 		else if (hdr->cname && limit - dptr >= hdr->clen + 1 &&
 			 strnicmp(dptr, hdr->cname, hdr->clen) == 0 &&
-			 !isalpha(*(dptr + hdr->clen + 1)))
+			 !isalpha(*(dptr + hdr->clen)))
 			dptr += hdr->clen;
 		else
 			continue;