diff --git a/lib/core/ogs-3gpp-types.c b/lib/core/ogs-3gpp-types.c index 446cb2d96..b3245389e 100644 --- a/lib/core/ogs-3gpp-types.c +++ b/lib/core/ogs-3gpp-types.c @@ -427,12 +427,19 @@ int ogs_ip_to_sockaddr(ogs_ip_t *ip, uint16_t port, ogs_sockaddr_t **list) ogs_assert(list); addr = ogs_calloc(1, sizeof(ogs_sockaddr_t)); - ogs_expect_or_return_val(addr, OGS_ERROR); + if (!addr) { + ogs_error("ogs_calloc() failed"); + return OGS_ERROR; + } addr->ogs_sa_family = AF_INET; addr->ogs_sin_port = htobe16(port); addr6 = ogs_calloc(1, sizeof(ogs_sockaddr_t)); - ogs_expect_or_return_val(addr6, OGS_ERROR); + if (!addr6) { + ogs_error("ogs_calloc() failed"); + ogs_free(addr); + return OGS_ERROR; + } addr6->ogs_sa_family = AF_INET6; addr6->ogs_sin_port = htobe16(port); @@ -454,6 +461,7 @@ int ogs_ip_to_sockaddr(ogs_ip_t *ip, uint16_t port, ogs_sockaddr_t **list) *list = addr6; } else { + ogs_error("No IPv4 and IPv6"); ogs_free(addr); ogs_free(addr6); return OGS_ERROR; diff --git a/lib/gtp/context.c b/lib/gtp/context.c index e5c94f99e..506d5e9b0 100644 --- a/lib/gtp/context.c +++ b/lib/gtp/context.c @@ -570,7 +570,10 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( ogs_app()->parameter.no_ipv4, ogs_app()->parameter.no_ipv6, ogs_app()->parameter.prefer_ipv4); - ogs_assert(addr); + if (!addr) { + ogs_error("ogs_filter_ip_version() failed"); + return NULL; + } #if 0 /* deprecated */ rv = ogs_socknode_fill_scope_id_in_local(addr); @@ -578,10 +581,18 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid( #endif node = ogs_gtp_node_new(addr); - ogs_expect_or_return_val(node, NULL); + if (!node) { + ogs_error("ogs_gtp_node_new() failed"); + ogs_freeaddrinfo(addr); + return NULL; + } rv = ogs_gtp2_f_teid_to_ip(f_teid, &node->ip); - ogs_expect_or_return_val(rv == OGS_OK, NULL); + if (rv != OGS_OK) { + ogs_error("ogs_gtp2_f_teid_to_ip() failed"); + ogs_freeaddrinfo(addr); + return NULL; + } ogs_list_add(list, node); @@ -598,7 +609,11 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_addr(ogs_list_t *list, ogs_sockaddr_t *addr) ogs_assert(OGS_OK == ogs_copyaddrinfo(&new, addr)); gnode = ogs_gtp_node_new(new); - ogs_expect_or_return_val(gnode, NULL); + if (!gnode) { + ogs_error("ogs_gtp_node_new() failed"); + ogs_freeaddrinfo(new); + return NULL; + } memcpy(&gnode->addr, new, sizeof gnode->addr); @@ -680,15 +695,22 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_ip( ogs_app()->parameter.no_ipv4, ogs_app()->parameter.no_ipv6, ogs_app()->parameter.prefer_ipv4); - ogs_expect_or_return_val(addr, NULL); + if (!addr) { + ogs_error("ogs_filter_ip_version() failed"); + return NULL; + } #if 0 /* deprecated */ rv = ogs_socknode_fill_scope_id_in_local(addr); - ogs_expect_or_return_val(rv == OGS_OK, NULL); + ogs_assert(rv == OGS_OK); #endif node = ogs_gtp_node_new(addr); - ogs_expect_or_return_val(node, NULL); + if (!node) { + ogs_error("ogs_gtp_node_new() failed"); + ogs_freeaddrinfo(addr); + return NULL; + } memcpy(&node->ip, ip, sizeof(*ip)); diff --git a/lib/gtp/v2/conv.c b/lib/gtp/v2/conv.c index 0db900b4f..505fc1289 100644 --- a/lib/gtp/v2/conv.c +++ b/lib/gtp/v2/conv.c @@ -33,7 +33,11 @@ int ogs_gtp2_f_teid_to_sockaddr( addr->ogs_sin_port = htobe16(port); addr6 = ogs_calloc(1, sizeof(ogs_sockaddr_t)); - ogs_expect_or_return_val(addr6, OGS_ERROR); + if (!addr6) { + ogs_error("ogs_calloc() failed"); + ogs_free(addr); + return OGS_ERROR; + } addr6->ogs_sa_family = AF_INET6; addr6->ogs_sin_port = htobe16(port); @@ -55,9 +59,9 @@ int ogs_gtp2_f_teid_to_sockaddr( *list = addr6; } else { + ogs_error("No IPv4 or IPv6"); ogs_free(addr); ogs_free(addr6); - ogs_error("No IPv4 or IPv6"); return OGS_ERROR; }