Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6fe83c6 authored by Pavlin Radoslavov's avatar Pavlin Radoslavov Committed by Andre Eisenbach
Browse files

Removed checks for NULL returns after osi_calloc() / osi_malloc()

Removed explicit checks for NULL pointer returns after calls
to osi_calloc() and osi_malloc(), because those are not needed.
If the memory allocation fails, osi_calloc() and osi_malloc()
will trigger an assert.

Bug: 27048759
Change-Id: I2791eb2f69c08f991f8fcdef10e101a41568cd95
parent 88e1b497
Loading
Loading
Loading
Loading
+76 −102
Original line number Diff line number Diff line
@@ -56,14 +56,9 @@ static const tBTA_SYS_REG bta_ag_reg =
*******************************************************************************/
tBTA_STATUS BTA_AgEnable(tBTA_AG_PARSE_MODE parse_mode, tBTA_AG_CBACK *p_cback)
{
    tBTA_AG_API_ENABLE  *p_buf;
    UINT8       idx;

    /* Error if AG is already enabled, or AG is in the middle of disabling. */
    for (idx = 0; idx < BTA_AG_NUM_SCB; idx++)
    {
        if (bta_ag_cb.scb[idx].in_use)
        {
    for (int idx = 0; idx < BTA_AG_NUM_SCB; idx++) {
        if (bta_ag_cb.scb[idx].in_use) {
            APPL_TRACE_ERROR ("BTA_AgEnable: FAILED, AG already enabled.");
            return BTA_FAILURE;
        }
@@ -72,16 +67,15 @@ tBTA_STATUS BTA_AgEnable(tBTA_AG_PARSE_MODE parse_mode, tBTA_AG_CBACK *p_cback)
    /* register with BTA system manager */
    bta_sys_register(BTA_ID_AG, &bta_ag_reg);

    if ((p_buf = (tBTA_AG_API_ENABLE *) osi_malloc(sizeof(tBTA_AG_API_ENABLE))) != NULL)
    {
    tBTA_AG_API_ENABLE *p_buf =
        (tBTA_AG_API_ENABLE *)osi_malloc(sizeof(tBTA_AG_API_ENABLE));
    p_buf->hdr.event = BTA_AG_API_ENABLE_EVT;
    p_buf->parse_mode = parse_mode;
    p_buf->p_cback = p_cback;

    bta_sys_sendmsg(p_buf);
    }

    return BTA_SUCCESS;

}

/*******************************************************************************
@@ -96,14 +90,12 @@ tBTA_STATUS BTA_AgEnable(tBTA_AG_PARSE_MODE parse_mode, tBTA_AG_CBACK *p_cback)
*******************************************************************************/
void BTA_AgDisable(void)
{
    BT_HDR  *p_buf;
    BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));

    if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
    {
    p_buf->event = BTA_AG_API_DISABLE_EVT;

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -118,26 +110,23 @@ void BTA_AgDisable(void)
void BTA_AgRegister(tBTA_SERVICE_MASK services, tBTA_SEC sec_mask,tBTA_AG_FEAT features,
                  char * p_service_names[], UINT8 app_id)
{
    tBTA_AG_API_REGISTER    *p_buf;
    int                     i;
    tBTA_AG_API_REGISTER *p_buf =
        (tBTA_AG_API_REGISTER *)osi_malloc(sizeof(tBTA_AG_API_REGISTER));

    if ((p_buf = (tBTA_AG_API_REGISTER *) osi_malloc(sizeof(tBTA_AG_API_REGISTER))) != NULL)
    {
    p_buf->hdr.event = BTA_AG_API_REGISTER_EVT;
    p_buf->features = features;
    p_buf->sec_mask = sec_mask;
    p_buf->services = services;
    p_buf->app_id = app_id;
        for (i = 0; i < BTA_AG_NUM_IDX; i++)
        {
    for (int i = 0; i < BTA_AG_NUM_IDX; i++) {
        if (p_service_names[i])
            strlcpy(p_buf->p_name[i], p_service_names[i], BTA_SERVICE_NAME_LEN);
        else
            p_buf->p_name[i][0] = 0;
    }

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -151,15 +140,13 @@ void BTA_AgRegister(tBTA_SERVICE_MASK services, tBTA_SEC sec_mask,tBTA_AG_FEAT f
*******************************************************************************/
void BTA_AgDeregister(UINT16 handle)
{
    BT_HDR  *p_buf;
    BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));

    if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
    {
    p_buf->event = BTA_AG_API_DEREGISTER_EVT;
    p_buf->layer_specific = handle;

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -176,18 +163,17 @@ void BTA_AgDeregister(UINT16 handle)
*******************************************************************************/
void BTA_AgOpen(UINT16 handle, BD_ADDR bd_addr, tBTA_SEC sec_mask, tBTA_SERVICE_MASK services)
{
    tBTA_AG_API_OPEN  *p_buf;
    tBTA_AG_API_OPEN *p_buf =
        (tBTA_AG_API_OPEN *)osi_malloc(sizeof(tBTA_AG_API_OPEN));

    if ((p_buf = (tBTA_AG_API_OPEN *) osi_malloc(sizeof(tBTA_AG_API_OPEN))) != NULL)
    {
    p_buf->hdr.event = BTA_AG_API_OPEN_EVT;
    p_buf->hdr.layer_specific = handle;
    bdcpy(p_buf->bd_addr, bd_addr);
    p_buf->services = services;
    p_buf->sec_mask = sec_mask;

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -202,15 +188,13 @@ void BTA_AgOpen(UINT16 handle, BD_ADDR bd_addr, tBTA_SEC sec_mask, tBTA_SERVICE_
*******************************************************************************/
void BTA_AgClose(UINT16 handle)
{
    BT_HDR  *p_buf;
    BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));

    if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
    {
    p_buf->event = BTA_AG_API_CLOSE_EVT;
    p_buf->layer_specific = handle;

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -225,15 +209,13 @@ void BTA_AgClose(UINT16 handle)
*******************************************************************************/
void BTA_AgAudioOpen(UINT16 handle)
{
    BT_HDR  *p_buf;
    BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));

    if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
    {
    p_buf->event = BTA_AG_API_AUDIO_OPEN_EVT;
    p_buf->layer_specific = handle;

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -248,16 +230,13 @@ void BTA_AgAudioOpen(UINT16 handle)
*******************************************************************************/
void BTA_AgAudioClose(UINT16 handle)
{
    BT_HDR  *p_buf;
    BT_HDR  *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));

    if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
    {
    p_buf->event = BTA_AG_API_AUDIO_CLOSE_EVT;
    p_buf->layer_specific = handle;

    bta_sys_sendmsg(p_buf);
}
}


/*******************************************************************************
**
@@ -273,20 +252,17 @@ void BTA_AgAudioClose(UINT16 handle)
*******************************************************************************/
void BTA_AgResult(UINT16 handle, tBTA_AG_RES result, tBTA_AG_RES_DATA *p_data)
{
    tBTA_AG_API_RESULT  *p_buf;
    tBTA_AG_API_RESULT *p_buf =
        (tBTA_AG_API_RESULT *)osi_malloc(sizeof(tBTA_AG_API_RESULT));

    if ((p_buf = (tBTA_AG_API_RESULT *) osi_malloc(sizeof(tBTA_AG_API_RESULT))) != NULL)
    {
    p_buf->hdr.event = BTA_AG_API_RESULT_EVT;
    p_buf->hdr.layer_specific = handle;
    p_buf->result = result;
    if (p_data)
        {
        memcpy(&p_buf->data, p_data, sizeof(p_buf->data));
        }

    bta_sys_sendmsg(p_buf);
}
}

/*******************************************************************************
**
@@ -302,14 +278,12 @@ void BTA_AgResult(UINT16 handle, tBTA_AG_RES result, tBTA_AG_RES_DATA *p_data)
*******************************************************************************/
void BTA_AgSetCodec(UINT16 handle, tBTA_AG_PEER_CODEC codec)
{
    tBTA_AG_API_SETCODEC    *p_buf;
    tBTA_AG_API_SETCODEC *p_buf =
        (tBTA_AG_API_SETCODEC *)osi_malloc(sizeof(tBTA_AG_API_SETCODEC));

    if ((p_buf = (tBTA_AG_API_SETCODEC *) osi_malloc(sizeof(tBTA_AG_API_SETCODEC))) != NULL)
    {
    p_buf->hdr.event = BTA_AG_API_SETCODEC_EVT;
    p_buf->hdr.layer_specific = handle;
    p_buf->codec = codec;

    bta_sys_sendmsg(p_buf);
}
}
+2 −7
Original line number Diff line number Diff line
@@ -187,13 +187,8 @@ void bta_ag_at_parse(tBTA_AG_AT_CB *p_cb, char *p_buf, UINT16 len)
    int i = 0;
    char* p_save;

    if (p_cb->p_cmd_buf == NULL)
    {
        if ((p_cb->p_cmd_buf = (char *) osi_malloc(p_cb->cmd_max_len)) == NULL)
        {
            APPL_TRACE_ERROR("%s: osi_malloc() failed allocation", __func__);
            return;
        }
    if (p_cb->p_cmd_buf == NULL) {
        p_cb->p_cmd_buf = (char *)osi_malloc(p_cb->cmd_max_len);
        p_cb->cmd_pos = 0;
    }

+10 −18
Original line number Diff line number Diff line
@@ -42,20 +42,18 @@
******************************************************************************/
void bta_ag_ci_rx_write(UINT16 handle, char *p_data, UINT16 len)
{
    tBTA_AG_CI_RX_WRITE *p_buf;
    UINT16 len_remaining = len;
    char *p_data_area;

    if (len > (RFCOMM_DATA_BUF_SIZE - sizeof(tBTA_AG_CI_RX_WRITE) - 1))
        len = RFCOMM_DATA_BUF_SIZE - sizeof(tBTA_AG_CI_RX_WRITE) - 1;

    while (len_remaining)
    {
    while (len_remaining) {
        if (len_remaining < len)
            len = len_remaining;

        if ((p_buf = (tBTA_AG_CI_RX_WRITE *) osi_malloc(sizeof(tBTA_AG_CI_RX_WRITE) + len + 1)) != NULL)
    {
        tBTA_AG_CI_RX_WRITE *p_buf =
            (tBTA_AG_CI_RX_WRITE *)osi_malloc(sizeof(tBTA_AG_CI_RX_WRITE) + len + 1);
        p_buf->hdr.event = BTA_AG_CI_RX_WRITE_EVT;
        p_buf->hdr.layer_specific = handle;

@@ -64,10 +62,6 @@ void bta_ag_ci_rx_write(UINT16 handle, char *p_data, UINT16 len)
        p_data_area[len] = 0;

        bta_sys_sendmsg(p_buf);
        } else {
        APPL_TRACE_ERROR("ERROR: Unable to allocate buffer to hold AT response code. len=%i", len);
            break;
        }

        len_remaining -= len;
        p_data += len;
@@ -87,12 +81,10 @@ void bta_ag_ci_rx_write(UINT16 handle, char *p_data, UINT16 len)
******************************************************************************/
void bta_ag_ci_slc_ready(UINT16 handle)
{
    tBTA_AG_DATA *p_buf;
    tBTA_AG_DATA *p_buf = (tBTA_AG_DATA *)osi_malloc(sizeof(tBTA_AG_DATA));

    if ((p_buf = (tBTA_AG_DATA *)osi_malloc(sizeof(tBTA_AG_DATA))) != NULL)
    {
    p_buf->hdr.event = BTA_AG_CI_SLC_READY_EVT;
    p_buf->hdr.layer_specific = handle;

    bta_sys_sendmsg(p_buf);
}
}
+15 −27
Original line number Diff line number Diff line
@@ -87,7 +87,6 @@ const tBTA_AG_DATA_CBACK bta_ag_data_cback_tbl[] =
*******************************************************************************/
static void bta_ag_port_cback(UINT32 code, UINT16 port_handle, UINT16 handle)
{
    BT_HDR      *p_buf;
    tBTA_AG_SCB *p_scb;
    UNUSED(code);

@@ -101,14 +100,12 @@ static void bta_ag_port_cback(UINT32 code, UINT16 port_handle, UINT16 handle)
            return;
        }

        if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
        {
        BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));
        p_buf->event = BTA_AG_RFC_DATA_EVT;
        p_buf->layer_specific = handle;
        bta_sys_sendmsg(p_buf);
    }
}
}

/*******************************************************************************
**
@@ -122,7 +119,6 @@ static void bta_ag_port_cback(UINT32 code, UINT16 port_handle, UINT16 handle)
*******************************************************************************/
static void bta_ag_mgmt_cback(UINT32 code, UINT16 port_handle, UINT16 handle)
{
    tBTA_AG_RFC     *p_buf;
    tBTA_AG_SCB     *p_scb;
    UINT16          event;
    UINT8           i;
@@ -174,15 +170,13 @@ static void bta_ag_mgmt_cback(UINT32 code, UINT16 port_handle, UINT16 handle)
            event = BTA_AG_RFC_SRV_CLOSE_EVT;
        }

        if ((p_buf = (tBTA_AG_RFC *) osi_malloc(sizeof(tBTA_AG_RFC))) != NULL)
        {
        tBTA_AG_RFC *p_buf = (tBTA_AG_RFC *)osi_malloc(sizeof(tBTA_AG_RFC));
        p_buf->hdr.event = event;
        p_buf->hdr.layer_specific = handle;
        p_buf->port_handle = port_handle;
        bta_sys_sendmsg(p_buf);
    }
}
}

/*******************************************************************************
**
@@ -402,24 +396,18 @@ void bta_ag_rfc_do_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
*******************************************************************************/
void bta_ag_rfc_do_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
{
    tBTA_AG_RFC     *p_buf;
    UNUSED(p_data);

    if (p_scb->conn_handle)
    {
    if (p_scb->conn_handle) {
        RFCOMM_RemoveConnection(p_scb->conn_handle);
    }
    else
    {
    } else {
        /* Close API was called while AG is in Opening state.               */
        /* Need to trigger the state machine to send callback to the app    */
        /* and move back to INIT state.                                     */
        if ((p_buf = (tBTA_AG_RFC *) osi_malloc(sizeof(tBTA_AG_RFC))) != NULL)
        {
        tBTA_AG_RFC *p_buf = (tBTA_AG_RFC *)osi_malloc(sizeof(tBTA_AG_RFC));
        p_buf->hdr.event = BTA_AG_RFC_CLOSE_EVT;
        p_buf->hdr.layer_specific = bta_ag_scb_to_idx(p_scb);
        bta_sys_sendmsg(p_buf);
        }

        /* Cancel SDP if it had been started. */
        /*
+13 −24
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@ static const tBTM_ESCO_PARAMS bta_ag_esco_params =
static void bta_ag_sco_conn_cback(UINT16 sco_idx)
{
    UINT16  handle;
    BT_HDR  *p_buf;
    tBTA_AG_SCB *p_scb;

    /* match callback to scb; first check current sco scb */
@@ -173,18 +172,13 @@ static void bta_ag_sco_conn_cback(UINT16 sco_idx)
            handle = 0;
    }

    if (handle != 0)
    {
        if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
        {
    if (handle != 0) {
        BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));
        p_buf->event = BTA_AG_SCO_OPEN_EVT;
        p_buf->layer_specific = handle;
        bta_sys_sendmsg(p_buf);
        }
    }
    } else {
        /* no match found; disconnect sco, init sco variables */
    else
    {
        bta_ag_cb.sco.p_curr_scb = NULL;
        bta_ag_cb.sco.state = BTA_AG_SCO_SHUTDOWN_ST;
        BTM_RemoveSco(sco_idx);
@@ -203,7 +197,6 @@ static void bta_ag_sco_conn_cback(UINT16 sco_idx)
*******************************************************************************/
static void bta_ag_sco_disc_cback(UINT16 sco_idx)
{
    BT_HDR  *p_buf;
    UINT16  handle = 0;

    APPL_TRACE_DEBUG ("bta_ag_sco_disc_cback(): sco_idx: 0x%x  p_cur_scb: 0x%08x  sco.state: %d", sco_idx, bta_ag_cb.sco.p_curr_scb, bta_ag_cb.sco.state);
@@ -261,16 +254,12 @@ static void bta_ag_sco_disc_cback(UINT16 sco_idx)
        bta_ag_cb.sco.p_curr_scb->inuse_codec = BTA_AG_CODEC_NONE;
#endif

        if ((p_buf = (BT_HDR *) osi_malloc(sizeof(BT_HDR))) != NULL)
        {
        BT_HDR *p_buf = (BT_HDR *)osi_malloc(sizeof(BT_HDR));
        p_buf->event = BTA_AG_SCO_CLOSE_EVT;
        p_buf->layer_specific = handle;
        bta_sys_sendmsg(p_buf);
        }
    }
    } else {
        /* no match found */
    else
    {
        APPL_TRACE_DEBUG("no scb for ag_sco_disc_cback");

        /* sco could be closed after scb dealloc'ed */
Loading