Bläddra i källkod

[NETFILTER]: SIP conntrack: fix out of bounds memory access

When checking for an @-sign in skp_epaddr_len, make sure not to
run over the packet boundaries.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Patrick McHardy 18 år sedan
förälder
incheckning
adcb471110
2 ändrade filer med 2 tillägg och 2 borttagningar
  1. 1 1
      net/ipv4/netfilter/ip_conntrack_sip.c
  2. 1 1
      net/netfilter/nf_conntrack_sip.c

+ 1 - 1
net/ipv4/netfilter/ip_conntrack_sip.c

@@ -292,7 +292,7 @@ static int skp_epaddr_len(const char *dptr, const char *limit, int *shift)
 		dptr++;
 	}
 
-	if (*dptr == '@') {
+	if (dptr <= limit && *dptr == '@') {
 		dptr++;
 		(*shift)++;
 	} else

+ 1 - 1
net/netfilter/nf_conntrack_sip.c

@@ -312,7 +312,7 @@ static int skp_epaddr_len(struct nf_conn *ct, const char *dptr,
 		dptr++;
 	}
 
-	if (*dptr == '@') {
+	if (dptr <= limit && *dptr == '@') {
 		dptr++;
 		(*shift)++;
 	} else