gprs_ns2_sns: add check for duplicates to add_ip6_elem()

The ip4 version already checks for duplicates.

Related: OS#5036
Change-Id: I4a1528ea3427946ce465085919b2b522d3cedd07
diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index c50b2b9..1204266 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -452,10 +452,8 @@
 static int add_ip4_elem(struct ns2_sns_state *gss, struct ns2_sns_elems *elems,
 			const struct gprs_ns_ie_ip4_elem *ip4)
 {
-	unsigned int i;
-
 	/* check for duplicates */
-	for (i = 0; i < elems->num_ip4; i++) {
+	for (unsigned int i = 0; i < elems->num_ip4; i++) {
 		if (memcmp(&elems->ip4[i], ip4, sizeof(*ip4)))
 			continue;
 		return -1;
@@ -507,6 +505,13 @@
 static int add_ip6_elem(struct ns2_sns_state *gss, struct ns2_sns_elems *elems,
 			const struct gprs_ns_ie_ip6_elem *ip6)
 {
+	/* check for duplicates */
+	for (unsigned int i = 0; i < elems->num_ip6; i++) {
+		if (memcmp(&elems->ip6[i].ip_addr, &ip6->ip_addr, sizeof(ip6->ip_addr)) ||
+		    elems->ip6[i].udp_port != ip6->udp_port)
+			continue;
+		return -1;
+	}
 
 	elems->ip6 = talloc_realloc(gss, elems->ip6, struct gprs_ns_ie_ip6_elem,
 					 elems->num_ip6+1);