sgsn: Simplify finding/using the first address of the result
The loop was used to print all returned addresses but we can
simply pick the first one. This is fixing a coverity issue that
the loop will be executed eaxactly once (and that was on
purpose).
Simplify the code and just take the first element (which might
be NULL).
Fixes: Coverity CID#1302852
diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index 04f75cf..0e75430 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -1658,7 +1658,6 @@
struct sgsn_ggsn_ctx *ggsn;
struct sgsn_ggsn_lookup *lookup = arg;
struct in_addr *addr = NULL;
- int i;
/* The context is gone while we made a request */
if (!lookup->mmctx) {
@@ -1700,12 +1699,8 @@
goto reject_due_failure;
}
- /* get the address */
- for (i = 0, addr = (struct in_addr *) hostent->h_addr_list[i]; addr;
- i++, addr = (struct in_addr *) hostent->h_addr_list[i]) {
- break;
- }
-
+ /* Get the first addr from the list */
+ addr = (struct in_addr *) hostent->h_addr_list[0];
if (!addr) {
LOGMMCTXP(LOGL_ERROR, lookup->mmctx, "No host address.\n");
goto reject_due_failure;