Only send TRAP for defined PDP peer

Do not attempt to send TRAP message on PDP context deletion if peer is
unknown.

Change-Id: I5e02c1d42bb7aaf1ef81a9824aab7b12047cdd3e
Fixes: Coverity CID 150135
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 9609d52..181ba2d 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -138,10 +138,15 @@
 	DEBUGP(DGGSN, "Deleting PDP context\n");
 	struct ippoolm_t *member = pdp->peer;
 	char v[NAMESIZE];
-	snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi, inet_ntoa(member->addr));
-	if (pdp->peer)
+
+	if (pdp->peer) {
+		snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi,
+			 inet_ntoa(member->addr));
+		if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-rem-ip", v) < 0)
+			LOGP(DGGSN, LOGL_ERROR, "Failed to create and send TRAP"
+			     " for IMSI %" PRIu64 " PDP deletion.\n", pdp->imsi);
 		ippool_freeip(ippool, (struct ippoolm_t *)pdp->peer);
-	else
+	} else
 		SYS_ERR(DGGSN, LOGL_ERROR, 0, "Peer not defined!");
 
 	if (gtp_kernel_tunnel_del(pdp)) {
@@ -149,9 +154,6 @@
 			"Cannot delete tunnel from kernel: %s\n",
 			strerror(errno));
 	}
-/* FIXME: naming? */
-	if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-rem-ip", v) < 0)
-		LOGP(DGGSN, LOGL_ERROR, "Trap creation failed.\n");
 
 	return 0;
 }