sgsn_vty: Don't assume pdp->lib is always valid

We can only print libgtp pdp information if a library context is
attached to this pdp context.  This is not always the case,
particuarly during some teardown scenarios.

Change-Id: Ia3184877f9709db65f5f93a98403f2ef5b04a8ca
diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c
index 888f53a..cc8d6c3 100644
--- a/src/gprs/sgsn_vty.c
+++ b/src/gprs/sgsn_vty.c
@@ -468,20 +468,22 @@
 	const char *imsi = pdp->mm ? pdp->mm->imsi : "(detaching)";
 	vty_out(vty, "%sPDP Context IMSI: %s, SAPI: %u, NSAPI: %u, TI: %u%s",
 		pfx, imsi, pdp->sapi, pdp->nsapi, pdp->ti, VTY_NEWLINE);
-	vty_out(vty, "%s  APN: %s%s", pfx,
-		gprs_apn2str(pdp->lib->apn_use.v, pdp->lib->apn_use.l),
-		VTY_NEWLINE);
-	vty_out(vty, "%s  PDP Address: %s%s", pfx,
-		gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l),
-		VTY_NEWLINE);
-	vty_out(vty, "%s  GTP Local Control(%s / TEIC: 0x%08x) ", pfx,
-		gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own);
-	vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
-		gtp_ntoa(&pdp->lib->gsnlu), pdp->lib->teid_own, VTY_NEWLINE);
-	vty_out(vty, "%s  GTP Remote Control(%s / TEIC: 0x%08x) ", pfx,
-		gtp_ntoa(&pdp->lib->gsnrc), pdp->lib->teic_gn);
-	vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
-		gtp_ntoa(&pdp->lib->gsnru), pdp->lib->teid_gn, VTY_NEWLINE);
+	if (pdp->lib) {
+		vty_out(vty, "%s  APN: %s%s", pfx,
+			gprs_apn2str(pdp->lib->apn_use.v, pdp->lib->apn_use.l),
+			VTY_NEWLINE);
+		vty_out(vty, "%s  PDP Address: %s%s", pfx,
+			gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l),
+			VTY_NEWLINE);
+		vty_out(vty, "%s  GTP Local Control(%s / TEIC: 0x%08x) ", pfx,
+			gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own);
+		vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
+			gtp_ntoa(&pdp->lib->gsnlu), pdp->lib->teid_own, VTY_NEWLINE);
+		vty_out(vty, "%s  GTP Remote Control(%s / TEIC: 0x%08x) ", pfx,
+			gtp_ntoa(&pdp->lib->gsnrc), pdp->lib->teic_gn);
+		vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
+			gtp_ntoa(&pdp->lib->gsnru), pdp->lib->teid_gn, VTY_NEWLINE);
+	}
 
 	vty_out_rate_ctr_group(vty, " ", pdp->ctrg);
 }