OSDN Git Service

Add missing extension length check while parsing BNEP control packets
authorPavlin Radoslavov <pavlin@google.com>
Tue, 18 Jul 2017 01:12:10 +0000 (18:12 -0700)
committerPavlin Radoslavov <pavlin@google.com>
Tue, 18 Jul 2017 01:22:49 +0000 (18:22 -0700)
Bug: 63146237
Test: External script
Change-Id: I4e519cec1c7dffb8bd42add00bd891e0969a3d9f
(cherry picked from commit 9ab89b7dbe5735b796799f65144efa48595d0230)
(cherry picked from commit dc7700a43189d2a8607b69ae19a6d646f11ddf51)
(cherry picked from commit c7874f25a0557ca4413d8db80bab8da842fc389a)
(cherry picked from commit 187bd8aec0aae63c6328981041e5ec7764ece6a9)
(cherry picked from commit 01f46e0aff705dab350cda7f648fb94976ea3988)

stack/bnep/bnep_utils.c

index f11c6c8..9d7e28f 100644 (file)
@@ -885,7 +885,7 @@ UINT8 *bnep_process_control_packet (tBNEP_CONN *p_bcb, UINT8 *p, UINT16 *rem_len
         BNEP_TRACE_ERROR("%s: BNEP - bad ctl pkt type: %d", __func__,
                          control_type);
         bnep_send_command_not_understood (p_bcb, control_type);
-        if (is_ext)
+        if (is_ext && (ext_len > 0))
         {
             if (*rem_len < (ext_len - 1)) {
                 goto bad_packet_length;