From a8f83989f4fdd55a176de3f159aa026750a5c5a8 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Mon, 23 Jan 2023 09:29:00 +0900 Subject: [PATCH] Follow-up on #2009 --- lib/pfcp/build.c | 8 ++++++++ lib/pfcp/handler.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/pfcp/build.c b/lib/pfcp/build.c index 0d4f64e58..bd3bef681 100644 --- a/lib/pfcp/build.c +++ b/lib/pfcp/build.c @@ -322,6 +322,14 @@ void ogs_pfcp_build_create_pdr( message->pdi.framed_route[j].len = strlen(pdr->ipv4_framed_routes[j]); } + for (j = 0; j < OGS_MAX_NUM_OF_FRAMED_ROUTES_IN_PDI; j++) { + if (!pdr->ipv6_framed_routes || !pdr->ipv6_framed_routes[j]) + break; + message->pdi.framed_ipv6_route[j].presence = 1; + message->pdi.framed_ipv6_route[j].data = pdr->ipv6_framed_routes[j]; + message->pdi.framed_ipv6_route[j].len = strlen(pdr->ipv6_framed_routes[j]); + } + if (pdr->f_teid_len) { memcpy(&pdrbuf[i].f_teid, &pdr->f_teid, pdr->f_teid_len); pdrbuf[i].f_teid.teid = htobe32(pdr->f_teid.teid); diff --git a/lib/pfcp/handler.c b/lib/pfcp/handler.c index 86fd1ce4a..f8195103e 100644 --- a/lib/pfcp/handler.c +++ b/lib/pfcp/handler.c @@ -519,7 +519,7 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_create_pdr(ogs_pfcp_sess_t *sess, if (!pdr->ipv6_framed_routes) { pdr->ipv6_framed_routes = ogs_calloc( - OGS_MAX_NUM_OF_FRAMED_ROUTES_IN_PDI, sizeof(ogs_ipsubnet_t)); + OGS_MAX_NUM_OF_FRAMED_ROUTES_IN_PDI, sizeof(pdr->ipv6_framed_routes[0])); ogs_assert(pdr->ipv6_framed_routes); } route = ogs_malloc(message->pdi.framed_ipv6_route[i].len + 1);