Skip to content

Commit

Permalink
Fix an integer overflow bug in avdt_msg_asmbl
Browse files Browse the repository at this point in the history
Bug: 280633699
Test: manual
Ignore-AOSP-First: security
Tag: #security
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bf9449a704c2983861dbe0ede9ab660e42826179)
Merged-In: Iaa4d603921fc4ffb8cfb5783f99ec0963affd6a2
Change-Id: Iaa4d603921fc4ffb8cfb5783f99ec0963affd6a2
  • Loading branch information
benquike authored and thestinger committed Sep 6, 2023
1 parent 585f583 commit c9905e7
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions system/stack/avdt/avdt_msg.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1285,14 +1285,14 @@ BT_HDR* avdt_msg_asmbl(AvdtpCcb* p_ccb, BT_HDR* p_buf) {
* NOTE: The buffer is allocated above at the beginning of the
* reassembly, and is always of size BT_DEFAULT_BUFFER_SIZE.
*/
uint16_t buf_len = BT_DEFAULT_BUFFER_SIZE - sizeof(BT_HDR);
size_t buf_len = BT_DEFAULT_BUFFER_SIZE - sizeof(BT_HDR);

/* adjust offset and len of fragment for header byte */
p_buf->offset += AVDT_LEN_TYPE_CONT;
p_buf->len -= AVDT_LEN_TYPE_CONT;

/* verify length */
if ((p_ccb->p_rx_msg->offset + p_buf->len) > buf_len) {
if (((size_t) p_ccb->p_rx_msg->offset + (size_t) p_buf->len) > buf_len) {
/* won't fit; free everything */
AVDT_TRACE_WARNING("%s: Fragmented message too big!", __func__);
osi_free_and_reset((void**)&p_ccb->p_rx_msg);
Expand Down

0 comments on commit c9905e7

Please sign in to comment.