Fix potential segfault in sgsn_libgtp.c

* print pdp->address instead of mm->imsi if mm is NULL
* print mm->imsi in debug log (move it below NULL check)

Change-Id: I4fbf5a54019a46612fbc528d61120182738f9205
diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index dde1e5e..c26abc9 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -641,8 +641,6 @@
 	struct msgb *msg;
 	uint8_t *ud;
 
-	DEBUGP(DGPRS, "GTP DATA IND from GGSN, length=%u\n", len);
-
 	pdp = lib->priv;
 	if (!pdp) {
 		LOGP(DGPRS, LOGL_NOTICE,
@@ -652,10 +650,14 @@
 	mm = pdp->mm;
 	if (!mm) {
 		LOGP(DGPRS, LOGL_ERROR,
-		     "PDP context (imsi=%s) without MM context!\n", mm->imsi);
+		     "PDP context (address=%u) without MM context!\n",
+		     pdp->address);
 		return -EIO;
 	}
 
+	DEBUGP(DGPRS, "GTP DATA IND from GGSN for %s, length=%u\n", mm->imsi,
+	       len);
+
 	if (mm->ran_type == MM_CTX_T_UTRAN_Iu) {
 #ifdef BUILD_IU
 		/* Ignore the packet for now and page the UE to get the RAB