Multiple modules register their callback BTA_GATTS_AppRegister().
If any of the callbacks do not free the allocated pointer in
BTA_GATTS_CONF_EVT event, then this can result in memory leak.
So, free the pointer after the callback function is called and remove
the calls to free in the callback functions as it is now not required
Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
APPL_TRACE_ERROR("%s, malloc failed", __func__);
}
(*p_rcb->p_cback)(BTA_GATTS_CONF_EVT, &cb_data);
+ if (cb_data.req_data.value != NULL) {
+ osi_free(cb_data.req_data.value);
+ cb_data.req_data.value = NULL;
+ }
}
} else {
APPL_TRACE_ERROR("Not an registered servce attribute ID: 0x%04x",
blufi_env.frag_size = p_data->req_data.p_data->mtu - BLUFI_MTU_RESERVED_SIZE;
break;
case BTA_GATTS_CONF_EVT:
- BLUFI_TRACE_DEBUG("CONIRM EVT\n");
- if (p_data && p_data->req_data.value){
- osi_free(p_data->req_data.value);
- }
+ BLUFI_TRACE_DEBUG("CONFIRM EVT\n");
/* Nothing */
break;
case BTA_GATTS_CREATE_EVT:
}
break;
case BTA_GATTS_CONF_EVT:
- if (p_data && p_data->req_data.value){
- osi_free(p_data->req_data.value);
- }
break;
default:
break;