Commit bf3db975 authored by Dong Anyuan's avatar Dong Anyuan

Fix Coverity Scan CID 300456 (Variable full_ul_report going out of scope leaks...

Fix Coverity Scan CID 300456 (Variable full_ul_report going out of scope leaks the storage it points to.)
parent 0398f964
...@@ -461,14 +461,18 @@ int flexran_agent_mac_stats_reply(mid_t mod_id, ...@@ -461,14 +461,18 @@ int flexran_agent_mac_stats_reply(mid_t mod_id,
full_ul_report->n_cqi_meas = 1; full_ul_report->n_cqi_meas = 1;
Protocol__FlexUlCqi **ul_report; Protocol__FlexUlCqi **ul_report;
ul_report = malloc(sizeof(Protocol__FlexUlCqi *) * full_ul_report->n_cqi_meas); ul_report = malloc(sizeof(Protocol__FlexUlCqi *) * full_ul_report->n_cqi_meas);
if(ul_report == NULL) if(ul_report == NULL) {
free(full_ul_report);
goto error; goto error;
}
//Fill each UL report of the UE for each of the configured report types //Fill each UL report of the UE for each of the configured report types
for(j = 0; j < full_ul_report->n_cqi_meas; j++) { for(j = 0; j < full_ul_report->n_cqi_meas; j++) {
ul_report[j] = malloc(sizeof(Protocol__FlexUlCqi)); ul_report[j] = malloc(sizeof(Protocol__FlexUlCqi));
if(ul_report[j] == NULL) if(ul_report[j] == NULL) {
goto error; free(full_ul_report);
goto error;
}
protocol__flex_ul_cqi__init(ul_report[j]); protocol__flex_ul_cqi__init(ul_report[j]);
//TODO: Set the type of the UL report. As an example set it to SRS UL report //TODO: Set the type of the UL report. As an example set it to SRS UL report
// See enum flex_ul_cqi_type in FlexRAN specification for more details // See enum flex_ul_cqi_type in FlexRAN specification for more details
...@@ -479,8 +483,10 @@ int flexran_agent_mac_stats_reply(mid_t mod_id, ...@@ -479,8 +483,10 @@ int flexran_agent_mac_stats_reply(mid_t mod_id,
ul_report[j]->n_sinr = 0; ul_report[j]->n_sinr = 0;
uint32_t *sinr_meas; uint32_t *sinr_meas;
sinr_meas = (uint32_t *) malloc(sizeof(uint32_t) * ul_report[j]->n_sinr); sinr_meas = (uint32_t *) malloc(sizeof(uint32_t) * ul_report[j]->n_sinr);
if (sinr_meas == NULL) if (sinr_meas == NULL) {
free(full_ul_report);
goto error; goto error;
}
//TODO:Set the SINR measurements for the specified type //TODO:Set the SINR measurements for the specified type
for (k = 0; k < ul_report[j]->n_sinr; k++) { for (k = 0; k < ul_report[j]->n_sinr; k++) {
sinr_meas[k] = 10; sinr_meas[k] = 10;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment