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
This commit is contained in:
Holger Hans Peter Freyther 2015-06-02 09:38:41 +02:00
parent f2e114ac85
commit 0958938d4e
1 changed files with 2 additions and 7 deletions

View File

@ -1658,7 +1658,6 @@ static void ggsn_lookup_cb(void *arg, int status, int timeouts, struct hostent *
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 @@ static void ggsn_lookup_cb(void *arg, int status, int timeouts, struct hostent *
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;