[GTP] Avoid abort if ogs_gtp_node_new() returns NULL (#1633)
* [GTP] Avoid abort if ogs_gtp_node_new() returns NULL * [SGWC] Avoid abort if ogs_gtp_node_add_by_addr() returns NULL
This commit is contained in:
parent
2dd577f88c
commit
c5a545039f
|
@ -578,7 +578,7 @@ ogs_gtp_node_t *ogs_gtp_node_add_by_f_teid(
|
|||
#endif
|
||||
|
||||
node = ogs_gtp_node_new(addr);
|
||||
ogs_assert(node);
|
||||
ogs_expect_or_return_val(node, NULL);
|
||||
|
||||
rv = ogs_gtp2_f_teid_to_ip(f_teid, &node->ip);
|
||||
ogs_expect_or_return_val(rv == OGS_OK, NULL);
|
||||
|
@ -598,8 +598,8 @@ 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);
|
||||
|
||||
ogs_assert(gnode);
|
||||
memcpy(&gnode->addr, new, sizeof gnode->addr);
|
||||
|
||||
ogs_list_add(list, gnode);
|
||||
|
|
|
@ -27,6 +27,7 @@ static void _gtpv2_c_recv_cb(short when, ogs_socket_t fd, void *data)
|
|||
ogs_pkbuf_t *pkbuf = NULL;
|
||||
ogs_sockaddr_t from;
|
||||
ogs_gtp_node_t *gnode = NULL;
|
||||
char frombuf[OGS_ADDRSTRLEN];
|
||||
|
||||
ogs_assert(fd != INVALID_SOCKET);
|
||||
|
||||
|
@ -83,7 +84,12 @@ static void _gtpv2_c_recv_cb(short when, ogs_socket_t fd, void *data)
|
|||
gnode = ogs_gtp_node_find_by_addr(&sgwc_self()->mme_s11_list, &from);
|
||||
if (!gnode) {
|
||||
gnode = ogs_gtp_node_add_by_addr(&sgwc_self()->mme_s11_list, &from);
|
||||
ogs_assert(gnode);
|
||||
if (!gnode) {
|
||||
ogs_error("Failed to create new gnode(%s:%u), mempool full, ignoring msg!",
|
||||
OGS_ADDR(&from, frombuf), OGS_PORT(&from));
|
||||
ogs_pkbuf_free(pkbuf);
|
||||
return;
|
||||
}
|
||||
gnode->sock = data;
|
||||
}
|
||||
ogs_assert(e);
|
||||
|
|
Loading…
Reference in New Issue