[NETFILTER]: nf_conntrack_sip: fix SIP-URI parsing
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>
This commit is contained in:
committed by
David S. Miller
parent
465f90a486
commit
aa584eda5d
@@ -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,
|
static int skp_epaddr_len(struct nf_conn *ct, const char *dptr,
|
||||||
const char *limit, int *shift)
|
const char *limit, int *shift)
|
||||||
{
|
{
|
||||||
|
const char *start = dptr;
|
||||||
int s = *shift;
|
int s = *shift;
|
||||||
|
|
||||||
/* Search for @, but stop at the end of the line.
|
/* 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 == '@') {
|
if (dptr <= limit && *dptr == '@') {
|
||||||
dptr++;
|
dptr++;
|
||||||
(*shift)++;
|
(*shift)++;
|
||||||
} else
|
} else {
|
||||||
|
dptr = start;
|
||||||
*shift = s;
|
*shift = s;
|
||||||
|
}
|
||||||
|
|
||||||
return epaddr_len(ct, dptr, limit, shift);
|
return epaddr_len(ct, dptr, limit, shift);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user