diff options
Diffstat (limited to 'stack/avdt/avdt_msg.cc')
-rw-r--r-- | stack/avdt/avdt_msg.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/stack/avdt/avdt_msg.cc b/stack/avdt/avdt_msg.cc index 33fbfa744..406f7f7ba 100644 --- a/stack/avdt/avdt_msg.cc +++ b/stack/avdt/avdt_msg.cc @@ -1251,6 +1251,10 @@ BT_HDR* avdt_msg_asmbl(AvdtpCcb* p_ccb, BT_HDR* p_buf) { * would have allocated smaller buffer. */ p_ccb->p_rx_msg = (BT_HDR*)osi_malloc(BT_DEFAULT_BUFFER_SIZE); + if (sizeof(BT_HDR) + p_buf->offset + p_buf->len > BT_DEFAULT_BUFFER_SIZE) { + android_errorWriteLog(0x534e4554, "232023771"); + return NULL; + } memcpy(p_ccb->p_rx_msg, p_buf, sizeof(BT_HDR) + p_buf->offset + p_buf->len); /* Free original buffer */ |