From: Hansong Zhang Date: Fri, 30 Mar 2018 23:27:37 +0000 (-0700) Subject: DO NOT MERGE Fix unexpected behavior in smp_sm_event X-Git-Tag: android-x86-9.0-r1~98^2^2^2^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=652798b2f2d6c90e0fc95c00ccfb91e2870b03d4;p=android-x86%2Fsystem-bt.git DO NOT MERGE Fix unexpected behavior in smp_sm_event Bug: 74121126 Test: manual Change-Id: Ie5dd841d6461ad057c4ab572007f38c5446aba53 --- diff --git a/stack/smp/smp_main.cc b/stack/smp/smp_main.cc index 829a5d48f..49e2ece7b 100644 --- a/stack/smp/smp_main.cc +++ b/stack/smp/smp_main.cc @@ -18,6 +18,7 @@ #include "bt_target.h" +#include #include #include "smp_int.h" @@ -954,6 +955,13 @@ void smp_sm_event(tSMP_CB* p_cb, tSMP_EVENT event, void* p_data) { uint8_t curr_state = p_cb->state; tSMP_SM_TBL state_table; uint8_t action, entry, i; + + if (p_cb->role >= 2) { + SMP_TRACE_DEBUG("Invalid role: %d", p_cb->role); + android_errorWriteLog(0x534e4554, "74121126"); + return; + } + tSMP_ENTRY_TBL entry_table = smp_entry_table[p_cb->role]; SMP_TRACE_EVENT("main smp_sm_event");