summaryrefslogtreecommitdiffstats
path: root/stack/btm/btm_sec.c
diff options
context:
space:
mode:
authorMatadeen Mishra <matade@codeaurora.org>2015-08-21 09:47:05 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:22:00 -0600
commitfada44256f77be2e7cdf1b6089c15c4b08a76046 (patch)
tree3a19278722436dd7dfc10c723f1feacb1632754b /stack/btm/btm_sec.c
parentc50610c030fc7b0bd547750a9851b772d836391a (diff)
downloadandroid_system_bt-fada44256f77be2e7cdf1b6089c15c4b08a76046.tar.gz
android_system_bt-fada44256f77be2e7cdf1b6089c15c4b08a76046.tar.bz2
android_system_bt-fada44256f77be2e7cdf1b6089c15c4b08a76046.zip
BT: Fixed Static Analysis Issues
- This fix avoids NULL pointer dereferences, Array Index Out of Bounds Exceptions and Banned funciton in the bluedroid code space of Bluetooth. CRs-Fixed: 890309, 890321 Change-Id: I24ae794ee01b65b5ab15c73cd82677b0481910ad
Diffstat (limited to 'stack/btm/btm_sec.c')
-rw-r--r--stack/btm/btm_sec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/stack/btm/btm_sec.c b/stack/btm/btm_sec.c
index f6e7b8f6a..487c175cd 100644
--- a/stack/btm/btm_sec.c
+++ b/stack/btm/btm_sec.c
@@ -224,10 +224,12 @@ static BOOLEAN btm_dev_16_digit_authenticated(tBTM_SEC_DEV_REC *p_dev_rec)
*******************************************************************************/
static BOOLEAN btm_serv_trusted(tBTM_SEC_DEV_REC *p_dev_rec, tBTM_SEC_SERV_REC *p_serv_rec)
{
- if(BTM_SEC_IS_SERVICE_TRUSTED(p_dev_rec->trusted_mask, p_serv_rec->service_id))
+ if( p_serv_rec->service_id <= BTM_SEC_MAX_SERVICES && BTM_SEC_IS_SERVICE_TRUSTED(p_dev_rec->trusted_mask, p_serv_rec->service_id))
{
return(TRUE);
}
+ else
+ BTM_TRACE_ERROR("BTM_Sec: Service Id: %d not found", p_serv_rec->service_id);
return(FALSE);
}
@@ -5820,8 +5822,7 @@ static tBTM_STATUS btm_sec_execute_procedure (tBTM_SEC_DEV_REC *p_dev_rec)
{
BTM_TRACE_EVENT ("service id:%d, is trusted:%d",
p_dev_rec->p_cur_service->service_id,
- (BTM_SEC_IS_SERVICE_TRUSTED(p_dev_rec->trusted_mask,
- p_dev_rec->p_cur_service->service_id)));
+ btm_serv_trusted(p_dev_rec,p_dev_rec->p_cur_service));
if ((btm_sec_are_all_trusted(p_dev_rec->trusted_mask) == FALSE) &&
(p_dev_rec->p_cur_service->service_id < BTM_SEC_MAX_SERVICES) &&
(BTM_SEC_IS_SERVICE_TRUSTED(p_dev_rec->trusted_mask,