From 46b54febab782f7d87a8b58b382b76ea17e463f1 Mon Sep 17 00:00:00 2001 From: mitmitmitm Date: Mon, 16 Sep 2024 14:55:03 +0200 Subject: [PATCH] Fix retry logic in UP-seid generation ~0 is usually (i32) 0xffffffff. We should compare up_seid (u64) to (u64) 0xffffffffffffffff instead. Additionally, adjust loop termination statement such that after exhausting retry limit, retry_cnt == 0 rather than -1, fixing subsequent if statement. --- upf/upf_pfcp_api.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/upf/upf_pfcp_api.c b/upf/upf_pfcp_api.c index c93af2a..d3f38be 100644 --- a/upf/upf_pfcp_api.c +++ b/upf/upf_pfcp_api.c @@ -2561,7 +2561,7 @@ handle_session_establishment_request (pfcp_msg_t *msg, { /* try to generate random seid */ up_seid = random_u64 (&seed); - if (up_seid == 0 || up_seid == ~0) + if (up_seid == 0 || up_seid == ~(u64)0) { continue; } @@ -2571,7 +2571,7 @@ handle_session_establishment_request (pfcp_msg_t *msg, break; } } - while (retry_cnt--); + while (--retry_cnt); if (retry_cnt == 0) {