[NETFILTER]: nf_conntrack_sip: fix SIP-URI parsing
authorPatrick McHardy <kaber@trash.net>
Tue, 14 Aug 2007 20:14:35 +0000 (13:14 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Aug 2007 20:14:35 +0000 (13:14 -0700)
The userinfo component of a SIP-URI is optional, continue parsing at the
beginning of the SIP-URI in case its not found.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/nf_conntrack_sip.c

index 5cc9636e46e9f3fef1be918caf6aa18ef7cac790..d449fa47491cfea5c65bfb957bda4ca60afe15a0 100644 (file)
@@ -295,6 +295,7 @@ static int epaddr_len(struct nf_conn *ct, const char *dptr,
 static int skp_epaddr_len(struct nf_conn *ct, const char *dptr,
                          const char *limit, int *shift)
 {
+       const char *start = dptr;
        int s = *shift;
 
        /* Search for @, but stop at the end of the line.
@@ -309,8 +310,10 @@ static int skp_epaddr_len(struct nf_conn *ct, const char *dptr,
        if (dptr <= limit && *dptr == '@') {
                dptr++;
                (*shift)++;
-       } else
+       } else {
+               dptr = start;
                *shift = s;
+       }
 
        return epaddr_len(ct, dptr, limit, shift);
 }