aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Wang <tedwang@google.com>2022-08-04 09:41:24 +0800
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-08-18 01:44:10 +0000
commite5d3eb51be19c28674734bccd8355578fcb0dd93 (patch)
tree1d6be4bcfb1fd54f018fd1ccbcc228e1e16c4a37
parentce8f89d36f4896f5d6432dddfa5ba705759f4133 (diff)
downloadbt-e5d3eb51be19c28674734bccd8355578fcb0dd93.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 4e6981539d9f7427f56003b1ab5a7ea3ef6ea682) Merged-In: I68dd78c747eeafee5190dc56d7c71e9eeed08a5b
-rw-r--r--stack/avdt/avdt_msg.cc4
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 */