osmo_gsup_req_new(): require from_peer != NULL

In practice, from_peer is always non-NULL, yet some conditions checked against
NULL, looking like a possible NULL deref. Require non-NULL.

Related: coverity CID#210172
Change-Id: I3cb73ec0d31f84d4b613ecb026169c944d240e4c
diff --git a/src/gsupclient/gsup_req.c b/src/gsupclient/gsup_req.c
index a8a66d5..2e7caf1 100644
--- a/src/gsupclient/gsup_req.c
+++ b/src/gsupclient/gsup_req.c
@@ -107,6 +107,12 @@
 	struct osmo_gsup_req *req;
 	int rc;
 
+	if (!from_peer) {
+		LOGP(DLGSUP, LOGL_ERROR, "Rx GSUP from NULL peer is not allowed\n");
+		msgb_free(msg);
+		return NULL;
+	}
+
 	if (!msgb_l2(msg) || !msgb_l2len(msg)) {
 		LOGP(DLGSUP, LOGL_ERROR, "Rx GSUP from %s: missing or empty L2 data\n",
 		     osmo_cni_peer_id_to_str(from_peer));
@@ -121,8 +127,7 @@
 	req->msg = msg;
 	req->send_response_cb = send_response_cb;
 	req->cb_data = cb_data;
-	if (from_peer)
-		req->source_name = *from_peer;
+	req->source_name = *from_peer;
 	rc = osmo_gsup_decode(msgb_l2(req->msg), msgb_l2len(req->msg), (struct osmo_gsup_message*)&req->gsup);
 	if (rc < 0) {
 		LOGP(DLGSUP, LOGL_ERROR, "Rx GSUP from %s: cannot decode (rc=%d)\n", osmo_cni_peer_id_to_str(from_peer), rc);