sgsn_ggsn_ctx_drop_pdp: protect against nullpointer when MM is gone

When the GGSN crashs, the SGSN will be notified after
it comes back. Because of the async operation,
the mm ctx could be already gone.

Change-Id: I507a8c2193c84f8dff7f5d669adcd3583331f289
diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index 977ae48..dc0e7c0 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -707,7 +707,9 @@
 
 void sgsn_ggsn_ctx_drop_pdp(struct sgsn_pdp_ctx *pctx)
 {
-	if (pctx->mm->gmm_state == GMM_REGISTERED_NORMAL) {
+	/* the MM context can be deleted while the GGSN is not reachable or
+	 * if has been crashed. */
+	if (pctx->mm && pctx->mm->gmm_state == GMM_REGISTERED_NORMAL) {
 		gsm48_tx_gsm_deact_pdp_req(pctx, GSM_CAUSE_NET_FAIL, true);
 		sgsn_ggsn_ctx_remove_pdp(pctx->ggsn, pctx);
 	} else  {