netfilter: nf_conntrack_sip: fix off-by-one in compact header parsing
authorPatrick McHardy <kaber@trash.net>
Tue, 19 Jan 2010 18:06:59 +0000 (19:06 +0100)
committerPatrick McHardy <kaber@trash.net>
Tue, 19 Jan 2010 18:06:59 +0000 (19:06 +0100)
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 <greqcs@galexander.org>

Signed-off-by: Patrick McHardy <kaber@trash.net>
net/netfilter/nf_conntrack_sip.c

index 4b572163784b338b1efa430713e1ae73d5da38b2..023966b569bf5166f92379f7db46651d1ed91567 100644 (file)
@@ -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;