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