gprs_ns2_frgre: set a correct gre pointer for ipv6

Also fixes a nullpointer deref because iph is NULL on IPv6

Related: CID#216555
Change-Id: I2ff868a7bba6151a2202df774ff022c02b8c34cb
diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c
index 853375d..f163704 100644
--- a/src/gb/gprs_ns2_frgre.c
+++ b/src/gb/gprs_ns2_frgre.c
@@ -339,7 +339,11 @@
 		break;
 	}
 
-	greh = (struct gre_hdr *) (msg->data + iph->ihl*4);
+	if (iph)
+		greh = (struct gre_hdr *) (msg->data + iph->ihl*4);
+	else
+		greh = (struct gre_hdr *) (msg->data + sizeof(struct ip6_hdr));
+
 	if (greh->flags) {
 		LOGBIND(bind, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", osmo_ntohs(greh->flags));
 	}