diff options
author | Ted Wang <tedwang@google.com> | 2022-08-04 09:41:24 +0800 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-17 01:09:46 +0000 |
commit | 064558281a8578dad2b0548a51b2decd1d56c09b (patch) | |
tree | 89064a6bea2a4daf0cace1bd2b28bde64b5fc7a5 | |
parent | 127b51ba1fbdc60eacddf7b5ea3de9766b7ea226 (diff) | |
download | bt-064558281a8578dad2b0548a51b2decd1d56c09b.tar.gz |
Add length check when copy AVDTP packet
Bug: 232023771
Test: make
Tag: #security
Ignore-AOSP-First: Security
Change-Id: I68dd78c747eeafee5190dc56d7c71e9eeed08a5b
Merged-In: I68dd78c747eeafee5190dc56d7c71e9eeed08a5b
(cherry picked from commit 2a6e799f7ebf5e7092db282b9659744e115f3000)
Merged-In: I68dd78c747eeafee5190dc56d7c71e9eeed08a5b
-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 bb49ede3e..41b9f9a89 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 */ |