atspi: fix invalid shift operation.

Add additional check in case when Elm_Atspi_Role_Type enum will enlarge.

CID: 1325724
This commit is contained in:
Lukasz Stanislawski 2015-10-20 11:56:55 +02:00
parent e7dbba85c9
commit f9defcd945
1 changed files with 7 additions and 1 deletions

View File

@ -2589,7 +2589,7 @@ _collection_match_roles_lookup(Eo *obj, struct collection_match_rule *rule)
eo_do(obj, role = elm_interface_atspi_accessible_role_get());
if (role > 64)
if (role >= 64)
{
role -= 64;
role_set = rule->roles[1];
@ -2597,6 +2597,12 @@ _collection_match_roles_lookup(Eo *obj, struct collection_match_rule *rule)
else
role_set = rule->roles[0];
if (role >= 64)
{
ERR("Elm_Atspi_Role enum value exceeds 127. Unable to compare with roles bit field.");
return EINA_FALSE;
}
switch (rule->rolematchtype)
{
case ATSPI_Collection_MATCH_INVALID: