stanluk pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=ec69c39e6965c7d0a9fa2f4d09f87af2ad0f8822

commit ec69c39e6965c7d0a9fa2f4d09f87af2ad0f8822
Author: Lukasz Stanislawski <l.stanisl...@samsung.com>
Date:   Tue Oct 20 11:56:55 2015 +0200

    atspi: fix invalid shift operation.
    
    Add additional check in case when Elm_Atspi_Role_Type enum will enlarge.
    
    CID: 1325724
---
 src/lib/elm_atspi_bridge.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index c755601..6019cca 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -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:

-- 


Reply via email to