Fix wrong usage of memory.
[sim/e2-interface.git] / e2sim / e2sm_examples / kpm_e2sm / src / kpm / kpm_callbacks.cpp
index 0370984..fea3a4b 100755 (executable)
@@ -81,7 +81,7 @@ int main(int argc, char* argv[]) {
     (E2SM_KPM_RANfunction_Description_t*)calloc(1,sizeof(E2SM_KPM_RANfunction_Description_t));
   encode_kpm_function_description(ranfunc_desc);
   
-  uint8_t e2smbuffer[8192];
+  uint8_t e2smbuffer[8192] = {0, };
   size_t e2smbuffer_size = 8192;
   
   asn_enc_rval_t er =
@@ -359,7 +359,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          
          encode_kpm_report_rancontainer_cucp_parameterized(ind_msg_cucp_ue, plmnid_buf, nrcellid_buf, crnti_buf, serving_buf, neighbor_buf);
          
-         uint8_t e2sm_message_buf_cucp_ue[8192];
+         uint8_t e2sm_message_buf_cucp_ue[8192] = {0, };
          size_t e2sm_message_buf_size_cucp_ue = 8192;
          
          asn_codec_ctx_t *opt_cod;
@@ -369,6 +369,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                   ATS_ALIGNED_BASIC_PER,
                                                                   &asn_DEF_E2SM_KPM_IndicationMessage,
                                                                   ind_msg_cucp_ue, e2sm_message_buf_cucp_ue, e2sm_message_buf_size_cucp_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cucp_ue);
          
          fprintf(stderr, "er encded is %d\n", er_message_cucp_ue.encoded);
          fprintf(stderr, "after encoding message\n");
@@ -379,13 +380,14 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          fprintf(stderr, "Now printing xer outside of function call\n");
          xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue);     
 
-         uint8_t e2sm_header_buf_cucp_ue[8192];
+         uint8_t e2sm_header_buf_cucp_ue[8192] = {0, };
          size_t e2sm_header_buf_size_cucp_ue = 8192;
          
          asn_enc_rval_t er_header_cucp_ue = asn_encode_to_buffer(opt_cod,
                                                                  ATS_ALIGNED_BASIC_PER,
                                                                  &asn_DEF_E2SM_KPM_IndicationHeader,
                                                                  ind_header_cucp_ue, e2sm_header_buf_cucp_ue, e2sm_header_buf_size_cucp_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue);
 
          fprintf(stderr, "er encded is %d\n", er_header_cucp_ue.encoded);
          fprintf(stderr, "error buf is %s\n", (char*)e2sm_header_buf_cucp_ue);
@@ -417,7 +419,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          
          encode_kpm_report_rancontainer_cuup_parameterized(ind_msg_cuup_ue, plmnid_buf, nrcellid_buf, crnti_buf, bytes, 0);
          
-         uint8_t e2sm_message_buf_cuup_ue[8192];
+         uint8_t e2sm_message_buf_cuup_ue[8192] = {0, };
          size_t e2sm_message_buf_size_cuup_ue = 8192;
          
          asn_codec_ctx_t *opt_cod2;
@@ -427,6 +429,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                               ATS_ALIGNED_BASIC_PER,
                                                               &asn_DEF_E2SM_KPM_IndicationMessage,
                                                               ind_msg_cuup_ue, e2sm_message_buf_cuup_ue, e2sm_message_buf_size_cuup_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cuup_ue);
          
          fprintf(stderr, "er encded is %d\n", er_message_cuup_ue.encoded);
          fprintf(stderr, "after encoding message\n");
@@ -435,13 +438,14 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
            (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t));
          encode_e2sm_kpm_indication_header(ind_header_cuup_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf);
 
-         uint8_t e2sm_header_buf_cuup_ue[8192];
+         uint8_t e2sm_header_buf_cuup_ue[8192] = {0, };
          size_t e2sm_header_buf_size_cuup_ue = 8192;
          
          asn_enc_rval_t er_header_cuup_ue = asn_encode_to_buffer(opt_cod,
                                                                  ATS_ALIGNED_BASIC_PER,
                                                                  &asn_DEF_E2SM_KPM_IndicationHeader,
                                                                  ind_header_cuup_ue, e2sm_header_buf_cuup_ue, e2sm_header_buf_size_cuup_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cuup_ue);
          
          
          E2AP_PDU *pdu_cuup_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU));        
@@ -468,7 +472,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          encode_kpm_report_rancontainer_du_parameterized(ind_message_du_ue,
                                                          plmnid_buf, nrcellid_buf, crnti_buf, prb_usage, 0);
          
-         uint8_t e2sm_message_buf_du_ue[8192];
+         uint8_t e2sm_message_buf_du_ue[8192] = {0, };
          size_t e2sm_message_buf_size_du_ue = 8192;
          
          asn_codec_ctx_t *opt_cod3;
@@ -480,6 +484,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                 ind_message_du_ue,
                                                                 e2sm_message_buf_du_ue,
                                                                 e2sm_message_buf_size_du_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_du_ue);
          
          fprintf(stderr, "er encded is %d\n", er_message_du_ue.encoded);
          fprintf(stderr, "after encoding message\n");
@@ -488,7 +493,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
            (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t));
          encode_e2sm_kpm_indication_header(ind_header_du_ue, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf);
 
-         uint8_t e2sm_header_buf_du_ue[8192];
+         uint8_t e2sm_header_buf_du_ue[8192] = {0, };
          size_t e2sm_header_buf_size_du_ue = 8192;
          
          asn_enc_rval_t er_header_du_ue = asn_encode_to_buffer(opt_cod,
@@ -496,6 +501,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                &asn_DEF_E2SM_KPM_IndicationHeader,
                                                                ind_header_du_ue, e2sm_header_buf_du_ue,
                                                                e2sm_header_buf_size_du_ue);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_du_ue);
          
          
          E2AP_PDU *pdu_du_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU));
@@ -590,13 +596,14 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          
          encode_kpm_report_style5_parameterized(ind_msg_style5 , cuupname_buf, bytes_dl, bytes_ul, sst_buf, sd_buf, plmnid_buf);
          
-         uint8_t e2sm_message_buf_style5[8192];
+         uint8_t e2sm_message_buf_style5[8192] = {0, };
          size_t e2sm_message_buf_size_style5 = 8192;
          
          asn_enc_rval_t er_message_style5 = asn_encode_to_buffer(opt_cod,
                                                                  ATS_ALIGNED_BASIC_PER,
                                                                  &asn_DEF_E2SM_KPM_IndicationMessage,
                                                                  ind_msg_style5, e2sm_message_buf_style5, e2sm_message_buf_size_style5);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_style5);
          
          fprintf(stderr, "er encded is %d\n", er_message_style5.encoded);
          fprintf(stderr, "after encoding message\n");
@@ -608,7 +615,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
            (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t));
          encode_e2sm_kpm_indication_header(ind_header_style5, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf);
 
-         uint8_t e2sm_header_buf_style5[8192];
+         uint8_t e2sm_header_buf_style5[8192] = {0, };
          size_t e2sm_header_buf_size_style5 = 8192;
          
          asn_enc_rval_t er_header_style5 = asn_encode_to_buffer(opt_cod,
@@ -616,6 +623,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                 &asn_DEF_E2SM_KPM_IndicationHeader,
                                                                 ind_header_style5,
                                                                 e2sm_header_buf_style5, e2sm_header_buf_size_style5);    
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style5);
          
          
          encoding::generate_e2apv1_indication_request_parameterized(pdu_style5, requestorId,
@@ -645,14 +653,16 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
          
 
          
-         long l_dl_prbs = prb_dl;
-         long l_ul_prbs = prb_ul;
+         long *l_dl_prbs = (long*)calloc(1, sizeof(long));
+         long *l_ul_prbs = (long*)calloc(1, sizeof(long));
+         *l_dl_prbs = (long)prb_dl;
+         *l_ul_prbs = (long)prb_ul;
          
          encode_kpm_report_style1_parameterized(ind_message_style1, fiveqi,
                                                 prb_dl, prb_ul, sst_buf, sd_buf,
-                                                plmnid_buf, nrcellid_buf, &l_dl_prbs, &l_ul_prbs);
+                                                plmnid_buf, nrcellid_buf, l_dl_prbs, l_ul_prbs);
          
-         uint8_t e2sm_message_buf_style1[8192];
+         uint8_t e2sm_message_buf_style1[8192] = {0, };
          size_t e2sm_message_buf_size_style1 = 8192;
          
          asn_enc_rval_t er_message_style1 = asn_encode_to_buffer(opt_cod2,
@@ -660,6 +670,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                  &asn_DEF_E2SM_KPM_IndicationMessage,
                                                                  ind_message_style1,
                                                                  e2sm_message_buf_style1, e2sm_message_buf_size_style1);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_style1);
          
          fprintf(stderr, "er encded is %d\n", er_message_style1.encoded);
          fprintf(stderr, "after encoding message\n");
@@ -673,7 +684,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
            (E2SM_KPM_IndicationHeader_t*)calloc(1,sizeof(E2SM_KPM_IndicationHeader_t));
          encode_e2sm_kpm_indication_header(ind_header_style1, plmnid_buf, sst_buf, sd_buf, fqival, qcival, nrcellid_buf, gnbid_buf, 0, cuupid_buf, duid_buf, cuupname_buf);
 
-         uint8_t e2sm_header_buf_style1[8192];
+         uint8_t e2sm_header_buf_style1[8192] = {0, };
          size_t e2sm_header_buf_size_style1 = 8192;
          
          asn_enc_rval_t er_header_style1 = asn_encode_to_buffer(opt_cod,
@@ -681,6 +692,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long
                                                                 &asn_DEF_E2SM_KPM_IndicationHeader,
                                                                 ind_header_style1,
                                                                 e2sm_header_buf_style1, e2sm_header_buf_size_style1);
+         ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style1);
          
          encoding::generate_e2apv1_indication_request_parameterized(pdu_style1, requestorId,
                                                                     instanceId, ranFunctionId,