#include "bt_common.h"
#include "bt_types.h"
+#include "log/log.h"
#include "l2cdefs.h"
#include "l2c_api.h"
if (p_hcon == NULL)
{
HIDH_TRACE_WARNING ("HID-Host Rcvd L2CAP data, unknown CID: 0x%x", l2cap_cid);
- osi_freebuf (p_msg);
+ osi_free(p_msg);
return;
}
+ if (p_msg->len < 1)
+ {
+ HIDH_TRACE_WARNING ("HID-Host Rcvd L2CAP data, invalid length");
+ osi_free(p_msg);
+ android_errorWriteLog(0x534e4554, "80493272");
+ return;
+ }
ttype = HID_GET_TRANS_FROM_HDR(*p_data);
param = HID_GET_PARAM_FROM_HDR(*p_data);
{
case HID_TRANS_HANDSHAKE:
hh_cb.callback(dhandle, hh_cb.devices[dhandle].addr, HID_HDEV_EVT_HANDSHAKE, param, NULL);
- osi_freebuf (p_msg);
+ osi_free(p_msg);
break;
case HID_TRANS_CONTROL:
default:
break;
}
- osi_freebuf (p_msg);
+ osi_free(p_msg);
break;
break;
default:
- osi_freebuf (p_msg);
+ osi_free(p_msg);
break;
}
-
}
/*******************************************************************************
if (!BTM_IsAclConnectionUp(hh_cb.devices[dhandle].addr, BT_TRANSPORT_BR_EDR))
{
- if (buf)
- osi_freebuf ((void *)buf);
- return( HID_ERR_NO_CONNECTION );
+ osi_free(buf);
+ return HID_ERR_NO_CONNECTION;
}
if (p_hcon->conn_flags & HID_CONN_FLAGS_CONGESTED)
{
- if (buf)
- osi_freebuf ((void *)buf);
- return( HID_ERR_CONGESTED );
+ osi_free(buf);
+ return HID_ERR_CONGESTED;
}
switch( trans_type )
{
if ( buf == NULL || blank_datc )
{
- p_buf = (BT_HDR *)osi_getbuf(buf_size);
- if (p_buf == NULL)
- return (HID_ERR_NO_RESOURCES);
+ p_buf = (BT_HDR *)osi_malloc(buf_size);
p_buf->offset = L2CAP_MIN_OFFSET;
seg_req = FALSE;
}
else if ( (buf->len > (p_hcon->rem_mtu_size - 1)))
{
- p_buf = (BT_HDR *)osi_getbuf(buf_size);
- if (p_buf == NULL)
- return (HID_ERR_NO_RESOURCES);
+ p_buf = (BT_HDR *)osi_malloc(buf_size);
p_buf->offset = L2CAP_MIN_OFFSET;
seg_req = TRUE;