Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #59 from EdgarChen/bug_1169585/preferred_mode_v7
Browse files Browse the repository at this point in the history
Bug 1169585 - Check net2modem/net2pmask array boundary
  • Loading branch information
EdgarChen committed Jun 10, 2015
2 parents aac9cc4 + 8f252cb commit 87a2d8a
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions reference-ril/reference-ril.c
Expand Up @@ -1139,8 +1139,10 @@ static void requestSignalStrength(void *data, size_t datalen, RIL_Token t)
*/
static int networkModePossible(ModemInfo *mdm, int nm)
{
if ((net2modem[nm] & mdm->supportedTechs) == net2modem[nm]) {
return 1;
if ((sizeof(net2pmask) / sizeof(int32_t)) > nm &&
(sizeof(net2modem) / sizeof(int)) > nm &&
(net2modem[nm] & mdm->supportedTechs) == net2modem[nm]) {
return 1;
}
return 0;
}
Expand All @@ -1152,13 +1154,16 @@ static void requestSetPreferredNetworkType( int request, void *data,
int value = *(int *)data;
int current, old;
int err;
int32_t preferred = net2pmask[value];
int32_t preferred;

ALOGD("requestSetPreferredNetworkType: current: %x. New: %x", PREFERRED_NETWORK(sMdmInfo), preferred);
if (!networkModePossible(sMdmInfo, value)) {
RIL_onRequestComplete(t, RIL_E_MODE_NOT_SUPPORTED, NULL, 0);
return;
}

preferred = net2pmask[value];
ALOGD("requestSetPreferredNetworkType: current: %x. New: %x", PREFERRED_NETWORK(sMdmInfo), preferred);

if (query_ctec(sMdmInfo, &current, NULL) < 0) {
RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0);
return;
Expand Down

0 comments on commit 87a2d8a

Please sign in to comment.