From 292b2e895b52e59cbdac3b4d960729672406d548 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 15 May 2023 17:31:31 +0200 Subject: [PATCH] sbcap: Update asn1c skeleton files Update skeleton files using newest asn1c with APER support [1], commit 08b293e8aa342d465d26805d1d66f3595b2ce261. This contains among others, fix to automatically disable stack overflow checks [2] when using ASan, in order to avoid failing during unit test run. [1] https://github.com/mouse07410/asn1c/tree/vlm_master [2] https://github.com/mouse07410/asn1c/pull/128 Related: OS#6025 Change-Id: I385d14d4be308b991a48ce1033087f07bd1f47ea --- ...cAP_Concurrent-Warning-Message-Indicator.h | 12 ++++++------ include/osmocom/sbcap/SBcAP_Criticality.h | 12 ++++++------ .../osmocom/sbcap/SBcAP_Error-Indication.h | 2 ++ .../sbcap/SBcAP_PWS-Failure-Indication.h | 2 ++ .../sbcap/SBcAP_PWS-Restart-Indication.h | 2 ++ include/osmocom/sbcap/SBcAP_Presence.h | 12 ++++++------ .../osmocom/sbcap/SBcAP_RAT-Selector-5GS.h | 12 ++++++------ .../SBcAP_Send-Stop-Warning-Indication.h | 12 ++++++------ ...AP_Send-Write-Replace-Warning-Indication.h | 12 ++++++------ .../osmocom/sbcap/SBcAP_Stop-All-Indicator.h | 12 ++++++------ .../sbcap/SBcAP_Stop-Warning-Indication.h | 2 ++ .../sbcap/SBcAP_Stop-Warning-Request.h | 2 ++ .../sbcap/SBcAP_Stop-Warning-Response.h | 2 ++ .../osmocom/sbcap/SBcAP_TriggeringMessage.h | 12 ++++++------ include/osmocom/sbcap/SBcAP_TypeOfError.h | 12 ++++++------ .../SBcAP_Write-Replace-Warning-Indication.h | 2 ++ .../SBcAP_Write-Replace-Warning-Request.h | 2 ++ .../SBcAP_Write-Replace-Warning-Response.h | 2 ++ src/sbcap/gen/SBcAP_Error-Indication.c | 4 ++-- src/sbcap/gen/SBcAP_PWS-Failure-Indication.c | 4 ++-- src/sbcap/gen/SBcAP_PWS-Restart-Indication.c | 4 ++-- src/sbcap/gen/SBcAP_Stop-Warning-Indication.c | 4 ++-- src/sbcap/gen/SBcAP_Stop-Warning-Request.c | 4 ++-- src/sbcap/gen/SBcAP_Stop-Warning-Response.c | 4 ++-- .../SBcAP_Write-Replace-Warning-Indication.c | 4 ++-- .../gen/SBcAP_Write-Replace-Warning-Request.c | 4 ++-- .../SBcAP_Write-Replace-Warning-Response.c | 4 ++-- src/sbcap/gen/asn_application.c | 2 +- src/sbcap/gen/constr_CHOICE_aper.c | 4 ++-- src/sbcap/gen/constr_SEQUENCE.c | 16 ++++++++-------- src/sbcap/skel/asn_application.h | 2 +- src/sbcap/skel/asn_internal.h | 19 ++++++++++++++++++- src/sbcap/skel/jer_encoder.h | 17 +++++++++++------ 33 files changed, 131 insertions(+), 91 deletions(-) diff --git a/include/osmocom/sbcap/SBcAP_Concurrent-Warning-Message-Indicator.h b/include/osmocom/sbcap/SBcAP_Concurrent-Warning-Message-Indicator.h index fe60dd3..bd4482c 100644 --- a/include/osmocom/sbcap/SBcAP_Concurrent-Warning-Message-Indicator.h +++ b/include/osmocom/sbcap/SBcAP_Concurrent-Warning-Message-Indicator.h @@ -29,12 +29,12 @@ typedef long SBcAP_Concurrent_Warning_Message_Indicator_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Concurrent_Warning_Message_Indicator_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Concurrent_Warning_Message_Indicator; -extern const asn_INTEGER_specifics_t asn_SPC_Concurrent_Warning_Message_Indicator_specs_1; -asn_struct_free_f Concurrent_Warning_Message_Indicator_free; -asn_struct_print_f Concurrent_Warning_Message_Indicator_print; -asn_constr_check_f Concurrent_Warning_Message_Indicator_constraint; -per_type_decoder_f Concurrent_Warning_Message_Indicator_decode_aper; -per_type_encoder_f Concurrent_Warning_Message_Indicator_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Concurrent_Warning_Message_Indicator_specs_1; +asn_struct_free_f SBcAP_Concurrent_Warning_Message_Indicator_free; +asn_struct_print_f SBcAP_Concurrent_Warning_Message_Indicator_print; +asn_constr_check_f SBcAP_Concurrent_Warning_Message_Indicator_constraint; +per_type_decoder_f SBcAP_Concurrent_Warning_Message_Indicator_decode_aper; +per_type_encoder_f SBcAP_Concurrent_Warning_Message_Indicator_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Criticality.h b/include/osmocom/sbcap/SBcAP_Criticality.h index be50041..420c7e8 100644 --- a/include/osmocom/sbcap/SBcAP_Criticality.h +++ b/include/osmocom/sbcap/SBcAP_Criticality.h @@ -31,12 +31,12 @@ typedef long SBcAP_Criticality_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Criticality_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Criticality; -extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; -asn_struct_free_f Criticality_free; -asn_struct_print_f Criticality_print; -asn_constr_check_f Criticality_constraint; -per_type_decoder_f Criticality_decode_aper; -per_type_encoder_f Criticality_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Criticality_specs_1; +asn_struct_free_f SBcAP_Criticality_free; +asn_struct_print_f SBcAP_Criticality_print; +asn_constr_check_f SBcAP_Criticality_constraint; +per_type_decoder_f SBcAP_Criticality_decode_aper; +per_type_encoder_f SBcAP_Criticality_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Error-Indication.h b/include/osmocom/sbcap/SBcAP_Error-Indication.h index a354434..eb4a97a 100644 --- a/include/osmocom/sbcap/SBcAP_Error-Indication.h +++ b/include/osmocom/sbcap/SBcAP_Error-Indication.h @@ -33,6 +33,8 @@ typedef struct SBcAP_Error_Indication { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Error_Indication; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Error_Indication_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Error_Indication_1[1]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_PWS-Failure-Indication.h b/include/osmocom/sbcap/SBcAP_PWS-Failure-Indication.h index ce67645..995ceae 100644 --- a/include/osmocom/sbcap/SBcAP_PWS-Failure-Indication.h +++ b/include/osmocom/sbcap/SBcAP_PWS-Failure-Indication.h @@ -37,6 +37,8 @@ typedef struct SBcAP_PWS_Failure_Indication { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_PWS_Failure_Indication; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Failure_Indication_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_PWS_Failure_Indication_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_PWS-Restart-Indication.h b/include/osmocom/sbcap/SBcAP_PWS-Restart-Indication.h index faf4de2..093143b 100644 --- a/include/osmocom/sbcap/SBcAP_PWS-Restart-Indication.h +++ b/include/osmocom/sbcap/SBcAP_PWS-Restart-Indication.h @@ -37,6 +37,8 @@ typedef struct SBcAP_PWS_Restart_Indication { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_PWS_Restart_Indication; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Restart_Indication_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_PWS_Restart_Indication_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Presence.h b/include/osmocom/sbcap/SBcAP_Presence.h index c33c2f2..7b7f156 100644 --- a/include/osmocom/sbcap/SBcAP_Presence.h +++ b/include/osmocom/sbcap/SBcAP_Presence.h @@ -31,12 +31,12 @@ typedef long SBcAP_Presence_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Presence_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Presence; -extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; -asn_struct_free_f Presence_free; -asn_struct_print_f Presence_print; -asn_constr_check_f Presence_constraint; -per_type_decoder_f Presence_decode_aper; -per_type_encoder_f Presence_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Presence_specs_1; +asn_struct_free_f SBcAP_Presence_free; +asn_struct_print_f SBcAP_Presence_print; +asn_constr_check_f SBcAP_Presence_constraint; +per_type_decoder_f SBcAP_Presence_decode_aper; +per_type_encoder_f SBcAP_Presence_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_RAT-Selector-5GS.h b/include/osmocom/sbcap/SBcAP_RAT-Selector-5GS.h index fc38ac0..fc53844 100644 --- a/include/osmocom/sbcap/SBcAP_RAT-Selector-5GS.h +++ b/include/osmocom/sbcap/SBcAP_RAT-Selector-5GS.h @@ -29,12 +29,12 @@ typedef long SBcAP_RAT_Selector_5GS_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_RAT_Selector_5GS_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_RAT_Selector_5GS; -extern const asn_INTEGER_specifics_t asn_SPC_RAT_Selector_5GS_specs_1; -asn_struct_free_f RAT_Selector_5GS_free; -asn_struct_print_f RAT_Selector_5GS_print; -asn_constr_check_f RAT_Selector_5GS_constraint; -per_type_decoder_f RAT_Selector_5GS_decode_aper; -per_type_encoder_f RAT_Selector_5GS_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_RAT_Selector_5GS_specs_1; +asn_struct_free_f SBcAP_RAT_Selector_5GS_free; +asn_struct_print_f SBcAP_RAT_Selector_5GS_print; +asn_constr_check_f SBcAP_RAT_Selector_5GS_constraint; +per_type_decoder_f SBcAP_RAT_Selector_5GS_decode_aper; +per_type_encoder_f SBcAP_RAT_Selector_5GS_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Send-Stop-Warning-Indication.h b/include/osmocom/sbcap/SBcAP_Send-Stop-Warning-Indication.h index 7e5c795..4b06cae 100644 --- a/include/osmocom/sbcap/SBcAP_Send-Stop-Warning-Indication.h +++ b/include/osmocom/sbcap/SBcAP_Send-Stop-Warning-Indication.h @@ -29,12 +29,12 @@ typedef long SBcAP_Send_Stop_Warning_Indication_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Send_Stop_Warning_Indication_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Send_Stop_Warning_Indication; -extern const asn_INTEGER_specifics_t asn_SPC_Send_Stop_Warning_Indication_specs_1; -asn_struct_free_f Send_Stop_Warning_Indication_free; -asn_struct_print_f Send_Stop_Warning_Indication_print; -asn_constr_check_f Send_Stop_Warning_Indication_constraint; -per_type_decoder_f Send_Stop_Warning_Indication_decode_aper; -per_type_encoder_f Send_Stop_Warning_Indication_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Send_Stop_Warning_Indication_specs_1; +asn_struct_free_f SBcAP_Send_Stop_Warning_Indication_free; +asn_struct_print_f SBcAP_Send_Stop_Warning_Indication_print; +asn_constr_check_f SBcAP_Send_Stop_Warning_Indication_constraint; +per_type_decoder_f SBcAP_Send_Stop_Warning_Indication_decode_aper; +per_type_encoder_f SBcAP_Send_Stop_Warning_Indication_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Send-Write-Replace-Warning-Indication.h b/include/osmocom/sbcap/SBcAP_Send-Write-Replace-Warning-Indication.h index a029277..2a147f1 100644 --- a/include/osmocom/sbcap/SBcAP_Send-Write-Replace-Warning-Indication.h +++ b/include/osmocom/sbcap/SBcAP_Send-Write-Replace-Warning-Indication.h @@ -29,12 +29,12 @@ typedef long SBcAP_Send_Write_Replace_Warning_Indication_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Send_Write_Replace_Warning_Indication_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Send_Write_Replace_Warning_Indication; -extern const asn_INTEGER_specifics_t asn_SPC_Send_Write_Replace_Warning_Indication_specs_1; -asn_struct_free_f Send_Write_Replace_Warning_Indication_free; -asn_struct_print_f Send_Write_Replace_Warning_Indication_print; -asn_constr_check_f Send_Write_Replace_Warning_Indication_constraint; -per_type_decoder_f Send_Write_Replace_Warning_Indication_decode_aper; -per_type_encoder_f Send_Write_Replace_Warning_Indication_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Send_Write_Replace_Warning_Indication_specs_1; +asn_struct_free_f SBcAP_Send_Write_Replace_Warning_Indication_free; +asn_struct_print_f SBcAP_Send_Write_Replace_Warning_Indication_print; +asn_constr_check_f SBcAP_Send_Write_Replace_Warning_Indication_constraint; +per_type_decoder_f SBcAP_Send_Write_Replace_Warning_Indication_decode_aper; +per_type_encoder_f SBcAP_Send_Write_Replace_Warning_Indication_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Stop-All-Indicator.h b/include/osmocom/sbcap/SBcAP_Stop-All-Indicator.h index 52d049f..002111a 100644 --- a/include/osmocom/sbcap/SBcAP_Stop-All-Indicator.h +++ b/include/osmocom/sbcap/SBcAP_Stop-All-Indicator.h @@ -29,12 +29,12 @@ typedef long SBcAP_Stop_All_Indicator_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_Stop_All_Indicator_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Stop_All_Indicator; -extern const asn_INTEGER_specifics_t asn_SPC_Stop_All_Indicator_specs_1; -asn_struct_free_f Stop_All_Indicator_free; -asn_struct_print_f Stop_All_Indicator_print; -asn_constr_check_f Stop_All_Indicator_constraint; -per_type_decoder_f Stop_All_Indicator_decode_aper; -per_type_encoder_f Stop_All_Indicator_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_Stop_All_Indicator_specs_1; +asn_struct_free_f SBcAP_Stop_All_Indicator_free; +asn_struct_print_f SBcAP_Stop_All_Indicator_print; +asn_constr_check_f SBcAP_Stop_All_Indicator_constraint; +per_type_decoder_f SBcAP_Stop_All_Indicator_decode_aper; +per_type_encoder_f SBcAP_Stop_All_Indicator_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Stop-Warning-Indication.h b/include/osmocom/sbcap/SBcAP_Stop-Warning-Indication.h index 5f00635..4ab243d 100644 --- a/include/osmocom/sbcap/SBcAP_Stop-Warning-Indication.h +++ b/include/osmocom/sbcap/SBcAP_Stop-Warning-Indication.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Stop_Warning_Indication { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Stop_Warning_Indication; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Indication_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Indication_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Stop-Warning-Request.h b/include/osmocom/sbcap/SBcAP_Stop-Warning-Request.h index b4466b8..d25ac6d 100644 --- a/include/osmocom/sbcap/SBcAP_Stop-Warning-Request.h +++ b/include/osmocom/sbcap/SBcAP_Stop-Warning-Request.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Stop_Warning_Request { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Stop_Warning_Request; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Request_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Request_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Stop-Warning-Response.h b/include/osmocom/sbcap/SBcAP_Stop-Warning-Response.h index e3b085f..df01d02 100644 --- a/include/osmocom/sbcap/SBcAP_Stop-Warning-Response.h +++ b/include/osmocom/sbcap/SBcAP_Stop-Warning-Response.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Stop_Warning_Response { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Stop_Warning_Response; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Response_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Response_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_TriggeringMessage.h b/include/osmocom/sbcap/SBcAP_TriggeringMessage.h index 771d281..ac31b8c 100644 --- a/include/osmocom/sbcap/SBcAP_TriggeringMessage.h +++ b/include/osmocom/sbcap/SBcAP_TriggeringMessage.h @@ -32,12 +32,12 @@ typedef long SBcAP_TriggeringMessage_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_TriggeringMessage_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_TriggeringMessage; -extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; -asn_struct_free_f TriggeringMessage_free; -asn_struct_print_f TriggeringMessage_print; -asn_constr_check_f TriggeringMessage_constraint; -per_type_decoder_f TriggeringMessage_decode_aper; -per_type_encoder_f TriggeringMessage_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_TriggeringMessage_specs_1; +asn_struct_free_f SBcAP_TriggeringMessage_free; +asn_struct_print_f SBcAP_TriggeringMessage_print; +asn_constr_check_f SBcAP_TriggeringMessage_constraint; +per_type_decoder_f SBcAP_TriggeringMessage_decode_aper; +per_type_encoder_f SBcAP_TriggeringMessage_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_TypeOfError.h b/include/osmocom/sbcap/SBcAP_TypeOfError.h index 0185e67..6389f4c 100644 --- a/include/osmocom/sbcap/SBcAP_TypeOfError.h +++ b/include/osmocom/sbcap/SBcAP_TypeOfError.h @@ -33,12 +33,12 @@ typedef long SBcAP_TypeOfError_t; /* Implementation */ extern asn_per_constraints_t asn_PER_type_SBcAP_TypeOfError_constr_1; extern asn_TYPE_descriptor_t asn_DEF_SBcAP_TypeOfError; -extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; -asn_struct_free_f TypeOfError_free; -asn_struct_print_f TypeOfError_print; -asn_constr_check_f TypeOfError_constraint; -per_type_decoder_f TypeOfError_decode_aper; -per_type_encoder_f TypeOfError_encode_aper; +extern const asn_INTEGER_specifics_t asn_SPC_SBcAP_TypeOfError_specs_1; +asn_struct_free_f SBcAP_TypeOfError_free; +asn_struct_print_f SBcAP_TypeOfError_print; +asn_constr_check_f SBcAP_TypeOfError_constraint; +per_type_decoder_f SBcAP_TypeOfError_decode_aper; +per_type_encoder_f SBcAP_TypeOfError_encode_aper; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Indication.h b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Indication.h index 37114b9..d1123fb 100644 --- a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Indication.h +++ b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Indication.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Write_Replace_Warning_Indication { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Write_Replace_Warning_Indication; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Indication_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Indication_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Request.h b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Request.h index 958f655..24f3f96 100644 --- a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Request.h +++ b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Request.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Write_Replace_Warning_Request { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Write_Replace_Warning_Request; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Request_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Request_1[2]; #ifdef __cplusplus } diff --git a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Response.h b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Response.h index 28199a5..6257817 100644 --- a/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Response.h +++ b/include/osmocom/sbcap/SBcAP_Write-Replace-Warning-Response.h @@ -37,6 +37,8 @@ typedef struct SBcAP_Write_Replace_Warning_Response { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SBcAP_Write_Replace_Warning_Response; +extern asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Response_specs_1; +extern asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Response_1[2]; #ifdef __cplusplus } diff --git a/src/sbcap/gen/SBcAP_Error-Indication.c b/src/sbcap/gen/SBcAP_Error-Indication.c index d1447b1..fd90085 100644 --- a/src/sbcap/gen/SBcAP_Error-Indication.c +++ b/src/sbcap/gen/SBcAP_Error-Indication.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Error_Indication_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Error_Indication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Error_Indication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -32,7 +32,7 @@ static const ber_tlv_tag_t asn_DEF_SBcAP_Error_Indication_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Error_Indication_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Error_Indication_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Error_Indication_specs_1 = { sizeof(struct SBcAP_Error_Indication), offsetof(struct SBcAP_Error_Indication, _asn_ctx), asn_MAP_SBcAP_Error_Indication_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_PWS-Failure-Indication.c b/src/sbcap/gen/SBcAP_PWS-Failure-Indication.c index 9ff0dcb..962d07d 100644 --- a/src/sbcap/gen/SBcAP_PWS-Failure-Indication.c +++ b/src/sbcap/gen/SBcAP_PWS-Failure-Indication.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_PWS_Failure_Indication_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_PWS_Failure_Indication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_PWS_Failure_Indication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_PWS_Failure_Indication_tag2el_1 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Failure_Indication_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Failure_Indication_specs_1 = { sizeof(struct SBcAP_PWS_Failure_Indication), offsetof(struct SBcAP_PWS_Failure_Indication, _asn_ctx), asn_MAP_SBcAP_PWS_Failure_Indication_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_PWS-Restart-Indication.c b/src/sbcap/gen/SBcAP_PWS-Restart-Indication.c index 445b77f..74dd155 100644 --- a/src/sbcap/gen/SBcAP_PWS-Restart-Indication.c +++ b/src/sbcap/gen/SBcAP_PWS-Restart-Indication.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_PWS_Restart_Indication_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_PWS_Restart_Indication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_PWS_Restart_Indication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_PWS_Restart_Indication_tag2el_1 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Restart_Indication_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_PWS_Restart_Indication_specs_1 = { sizeof(struct SBcAP_PWS_Restart_Indication), offsetof(struct SBcAP_PWS_Restart_Indication, _asn_ctx), asn_MAP_SBcAP_PWS_Restart_Indication_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Stop-Warning-Indication.c b/src/sbcap/gen/SBcAP_Stop-Warning-Indication.c index eada371..1f673b1 100644 --- a/src/sbcap/gen/SBcAP_Stop-Warning-Indication.c +++ b/src/sbcap/gen/SBcAP_Stop-Warning-Indication.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Indication_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Indication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Stop_Warning_Indication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Stop_Warning_Indication_tag2el_ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Indication_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Indication_specs_1 = { sizeof(struct SBcAP_Stop_Warning_Indication), offsetof(struct SBcAP_Stop_Warning_Indication, _asn_ctx), asn_MAP_SBcAP_Stop_Warning_Indication_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Stop-Warning-Request.c b/src/sbcap/gen/SBcAP_Stop-Warning-Request.c index 43fff39..b7bb498 100644 --- a/src/sbcap/gen/SBcAP_Stop-Warning-Request.c +++ b/src/sbcap/gen/SBcAP_Stop-Warning-Request.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Request_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Request_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Stop_Warning_Request, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Stop_Warning_Request_tag2el_1[] { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Request_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Request_specs_1 = { sizeof(struct SBcAP_Stop_Warning_Request), offsetof(struct SBcAP_Stop_Warning_Request, _asn_ctx), asn_MAP_SBcAP_Stop_Warning_Request_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Stop-Warning-Response.c b/src/sbcap/gen/SBcAP_Stop-Warning-Response.c index 2e2332b..53d5f10 100644 --- a/src/sbcap/gen/SBcAP_Stop-Warning-Response.c +++ b/src/sbcap/gen/SBcAP_Stop-Warning-Response.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Response_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Stop_Warning_Response_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Stop_Warning_Response, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Stop_Warning_Response_tag2el_1[ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Response_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Stop_Warning_Response_specs_1 = { sizeof(struct SBcAP_Stop_Warning_Response), offsetof(struct SBcAP_Stop_Warning_Response, _asn_ctx), asn_MAP_SBcAP_Stop_Warning_Response_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Indication.c b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Indication.c index 1416bbb..53f3dbd 100644 --- a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Indication.c +++ b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Indication.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Indication_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Indication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Write_Replace_Warning_Indication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Write_Replace_Warning_Indicatio { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Indication_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Indication_specs_1 = { sizeof(struct SBcAP_Write_Replace_Warning_Indication), offsetof(struct SBcAP_Write_Replace_Warning_Indication, _asn_ctx), asn_MAP_SBcAP_Write_Replace_Warning_Indication_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Request.c b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Request.c index 079261b..a52ae32 100644 --- a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Request.c +++ b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Request.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Request_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Request_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Write_Replace_Warning_Request, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Write_Replace_Warning_Request_t { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Request_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Request_specs_1 = { sizeof(struct SBcAP_Write_Replace_Warning_Request), offsetof(struct SBcAP_Write_Replace_Warning_Request, _asn_ctx), asn_MAP_SBcAP_Write_Replace_Warning_Request_tag2el_1, diff --git a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Response.c b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Response.c index 0c8dfd7..5d9bdb0 100644 --- a/src/sbcap/gen/SBcAP_Write-Replace-Warning-Response.c +++ b/src/sbcap/gen/SBcAP_Write-Replace-Warning-Response.c @@ -7,7 +7,7 @@ #include -static asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Response_1[] = { +asn_TYPE_member_t asn_MBR_SBcAP_Write_Replace_Warning_Response_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SBcAP_Write_Replace_Warning_Response, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -51,7 +51,7 @@ static const asn_TYPE_tag2member_t asn_MAP_SBcAP_Write_Replace_Warning_Response_ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolIEs */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* protocolExtensions */ }; -static asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Response_specs_1 = { +asn_SEQUENCE_specifics_t asn_SPC_SBcAP_Write_Replace_Warning_Response_specs_1 = { sizeof(struct SBcAP_Write_Replace_Warning_Response), offsetof(struct SBcAP_Write_Replace_Warning_Response, _asn_ctx), asn_MAP_SBcAP_Write_Replace_Warning_Response_tag2el_1, diff --git a/src/sbcap/gen/asn_application.c b/src/sbcap/gen/asn_application.c index 37f032c..7992185 100644 --- a/src/sbcap/gen/asn_application.c +++ b/src/sbcap/gen/asn_application.c @@ -432,7 +432,7 @@ asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, #endif /* !defined(ASN_DISABLE_XER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) - case ATS_BASIC_JER: + case ATS_JER: if(td->op->jer_encoder) { er = jer_encode(td, sptr, callback, callback_key); if(er.encoded == -1) { diff --git a/src/sbcap/gen/constr_CHOICE_aper.c b/src/sbcap/gen/constr_CHOICE_aper.c index 88daaf2..41040aa 100644 --- a/src/sbcap/gen/constr_CHOICE_aper.c +++ b/src/sbcap/gen/constr_CHOICE_aper.c @@ -53,8 +53,8 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, if(specs->ext_start == -1) ASN__DECODE_FAILED; - if (ct && ct->upper_bound >= ct->lower_bound) { - value = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); + if(specs && specs->tag2el_count > specs->ext_start) { + value = aper_get_nsnnwn(pd, specs->tag2el_count - specs->ext_start); /* extension elements range */ if(value < 0) ASN__DECODE_STARVED; value += specs->ext_start; if((unsigned)value >= td->elements_count) diff --git a/src/sbcap/gen/constr_SEQUENCE.c b/src/sbcap/gen/constr_SEQUENCE.c index 045d01e..8397d0c 100644 --- a/src/sbcap/gen/constr_SEQUENCE.c +++ b/src/sbcap/gen/constr_SEQUENCE.c @@ -124,6 +124,8 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, for(edx = 0; edx < td->elements_count; edx++) { asn_TYPE_member_t *elm = &td->elements[edx]; const void *memb_ptr; + asn_constr_check_f *constr; + int ret; if(elm->flags & ATF_POINTER) { memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); @@ -139,14 +141,12 @@ SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); } - if(elm->encoding_constraints.general_constraints) { - int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, - ctfailcb, app_key); - if(ret) return ret; - } else { - return elm->type->encoding_constraints.general_constraints(elm->type, - memb_ptr, ctfailcb, app_key); - } + constr = elm->encoding_constraints.general_constraints; + if(!constr) + constr = elm->type->encoding_constraints.general_constraints; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; } return 0; diff --git a/src/sbcap/skel/asn_application.h b/src/sbcap/skel/asn_application.h index a31fa60..bf10cd3 100644 --- a/src/sbcap/skel/asn_application.h +++ b/src/sbcap/skel/asn_application.h @@ -61,7 +61,7 @@ enum asn_transfer_syntax { */ ATS_BASIC_XER, ATS_CANONICAL_XER, - ATS_BASIC_JER, + ATS_JER, }; /* diff --git a/src/sbcap/skel/asn_internal.h b/src/sbcap/skel/asn_internal.h index 96485ae..9b6dc20 100644 --- a/src/sbcap/skel/asn_internal.h +++ b/src/sbcap/skel/asn_internal.h @@ -137,8 +137,25 @@ asn__format_to_callback( /* * Check stack against overflow, if limit is set. */ + +/* Since GCC 13, AddressSanitizer started defaulting to +* ASAN_OPTIONS="detect_stack_use_after_return=1", which makes this check +* fail due to apparently jumping stack pointers. +* Hence, disable this check if building with ASan, as documented in: +* GCC: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html +* Clang: https://clang.llvm.org/docs/AddressSanitizer.html#conditional-compilation-with-has-feature-address-sanitizer +*/ +#if defined(__SANITIZE_ADDRESS__) + #define ASN__SANITIZE_ENABLED 1 +#elif defined(__has_feature) +#if __has_feature(address_sanitizer) + #define ASN__SANITIZE_ENABLED 1 +#endif +#endif + #define ASN__DEFAULT_STACK_MAX (30000) -#ifdef ASN_DISABLE_STACK_OVERFLOW_CHECK + +#if defined(ASN__SANITIZE_ENABLED) || defined(ASN_DISABLE_STACK_OVERFLOW_CHECK) static int CC_NOTUSED ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { (void)ctx; diff --git a/src/sbcap/skel/jer_encoder.h b/src/sbcap/skel/jer_encoder.h index dc03ca2..672976d 100644 --- a/src/sbcap/skel/jer_encoder.h +++ b/src/sbcap/skel/jer_encoder.h @@ -13,15 +13,20 @@ extern "C" { struct asn_TYPE_descriptor_s; /* Forward declaration */ -/* Flags used by the jer_encode() and (*jer_type_encoder_f), defined below */ +/* Flags used by the jer_encode() and (*jer_type_encoder_f), defined below + * + * This isn't actually used, it might be used in the future to support + * both normal JSON and prettified JSON output or removed. + * It came from XER + */ enum jer_encoder_flags_e { /* Mode of encoding */ - JER_F_BASIC = 0x01, /* BASIC-JER (pretty-printing) */ + JER_F = 0x01, /* JER (pretty-printing) */ }; /* * The JER encoder of any type. May be invoked by the application. - * Produces CANONICAL-JER and BASIC-JER depending on the (jer_flags). + * Produces JER output. */ asn_enc_rval_t jer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, /* Structure to be encoded */ @@ -30,7 +35,7 @@ asn_enc_rval_t jer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, ); /* - * The variant of the above function which dumps the BASIC-JER (JER_F_BASIC) + * The variant of the above function which dumps the JER * output into the chosen file pointer. * RETURN VALUES: * 0: The structure is printed. @@ -42,9 +47,9 @@ int jer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, /* * A helper function that uses JER encoding/decoding to verify that: - * - Both structures encode into the same BASIC JER. + * - Both structures encode into the same JER. * - Both resulting JER byte streams can be decoded back. - * - Both decoded structures encode into the same BASIC JER (round-trip). + * - Both decoded structures encode into the same JER (round-trip). * All of this verifies equivalence between structures and a round-trip. * ARGUMENTS: * (opt_debug_stream) - If specified, prints ongoing details.