From a93ec3c226130e8a300b107cd582dc57004e0c40 Mon Sep 17 00:00:00 2001 From: Anssi Mannila Date: Tue, 21 Jan 2020 10:10:32 +0200 Subject: [PATCH] Fix for packRICSubscriptionResponse packing problem Change-Id: I7b5c7dbcf1ae8a2011610edf2819b6358e709d7c Signed-off-by: Anssi Mannila --- e2ap/libe2ap_wrapper/E2AP_if.c | 25 ++++++++++++------------- e2ap/libe2ap_wrapper/E2AP_if.h | 2 -- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/e2ap/libe2ap_wrapper/E2AP_if.c b/e2ap/libe2ap_wrapper/E2AP_if.c index 881e396..32aeeba 100644 --- a/e2ap/libe2ap_wrapper/E2AP_if.c +++ b/e2ap/libe2ap_wrapper/E2AP_if.c @@ -193,17 +193,18 @@ uint64_t packRICSubscriptionRequest(size_t* pdataBufferSize, byte* pDataBuffer, // This is not used in RIC // RICsubsequentAction, OPTIONAL - RICsubsequentAction_t* pRICsubsequentAction = calloc(1, sizeof(RICsubsequentAction_t)); - if (pRICsubsequentAction) { - pRICsubsequentAction->ricSubsequentActionType = - pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricSubsequentActionType; - pRICsubsequentAction->ricTimeToWait = - pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricTimeToWait; - pRICaction_ToBeSetup_ItemIEs->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = pRICsubsequentAction; + if (pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentActionPresent) { + RICsubsequentAction_t* pRICsubsequentAction = calloc(1, sizeof(RICsubsequentAction_t)); + if (pRICsubsequentAction) { + pRICsubsequentAction->ricSubsequentActionType = + pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricSubsequentActionType; + pRICsubsequentAction->ricTimeToWait = + pRICSubscriptionRequest->ricSubscription.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricSubsequentAction.ricTimeToWait; + pRICaction_ToBeSetup_ItemIEs->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = pRICsubsequentAction; + } + else + return e2err_RICSubscriptionRequestAllocRICsubsequentActionFail; } - else - return e2err_RICSubscriptionRequestAllocRICsubsequentActionFail; - ASN_SEQUENCE_ADD(&pRICsubscriptionRequest_IEs->value.choice.RICsubscription.ricAction_ToBeSetup_List.list, pRICaction_ToBeSetup_ItemIEs); index++; } @@ -454,7 +455,7 @@ uint64_t packRICSubscriptionResponse(size_t* pDataBufferSize, byte* pDataBuffer, ASN_SEQUENCE_ADD(&pE2AP_PDU->choice.successfulOutcome.value.choice.RICsubscriptionResponse.protocolIEs.list, pRICsubscriptionResponse_IEs); - // RICaction-NotAdmitted list + // RICaction-NotAdmitted list, OPTIONAL if (pRICSubscriptionResponse->ricActionNotAdmittedListPresent) { pRICsubscriptionResponse_IEs = calloc(1, sizeof(RICsubscriptionResponse_IEs_t)); if (pRICsubscriptionResponse_IEs) { @@ -511,8 +512,6 @@ uint64_t packRICSubscriptionResponse(size_t* pDataBufferSize, byte* pDataBuffer, } ASN_SEQUENCE_ADD(&pE2AP_PDU->choice.successfulOutcome.value.choice.RICsubscriptionResponse.protocolIEs.list, pRICsubscriptionResponse_IEs); } - else - return e2err_RICSubscriptionResponseAllocRICActionNotAdmittedListFail; if (E2encode(pE2AP_PDU, pDataBufferSize, pDataBuffer, pLogBuffer)) return e2err_OK; diff --git a/e2ap/libe2ap_wrapper/E2AP_if.h b/e2ap/libe2ap_wrapper/E2AP_if.h index 1e81852..06a429d 100644 --- a/e2ap/libe2ap_wrapper/E2AP_if.h +++ b/e2ap/libe2ap_wrapper/E2AP_if.h @@ -335,7 +335,6 @@ enum e2err { e2err_RICSubscriptionResponseAllocRICaction_Admitted_ItemIEsFail, e2err_RICSubscriptionResponseAllocRICActionAdmittedListFail, e2err_RICSubscriptionResponseAllocRICaction_NotAdmitted_ItemIEsFail, - e2err_RICSubscriptionResponseAllocRICActionNotAdmittedListFail, e2err_RICSubscriptionResponseEncodeFail, e2err_RICSubscriptionResponseAllocE2AP_PDUFail, e2err_RICSubscriptionFailureAllocRICrequestIDFail, @@ -415,7 +414,6 @@ static const char* const E2ErrorStrings[] = { "e2err_RICSubscriptionResponseAllocRICaction_Admitted_ItemIEsFail", "e2err_RICSubscriptionResponseAllocRICActionAdmittedListFail", "e2err_RICSubscriptionResponseAllocRICaction_NotAdmitted_ItemIEsFail", - "e2err_RICSubscriptionResponseAllocRICActionNotAdmittedListFail", "e2err_RICSubscriptionResponseEncodeFail", "e2err_RICSubscriptionResponseAllocE2AP_PDUFail", "e2err_RICSubscriptionFailureAllocRICrequestIDFail", -- 2.16.6