cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=522cb7756d663ac14eaa9d8ecc534bc17fa03aa3

commit 522cb7756d663ac14eaa9d8ecc534bc17fa03aa3
Author: Cedric BAIL <cedric.b...@samsung.com>
Date:   Thu Mar 13 10:52:37 2014 +0900

    evas: track modifier in the limited range of unsigned long long.
    
    This fix CID 1191924, CID 1191923, CID 1191922 and CID 1191921.
---
 src/lib/evas/canvas/evas_key.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/evas_key.c b/src/lib/evas/canvas/evas_key.c
index 22c9f2e..188870c 100644
--- a/src/lib/evas/canvas/evas_key.c
+++ b/src/lib/evas/canvas/evas_key.c
@@ -150,7 +150,7 @@ _evas_key_modifier_on(Eo *eo_e EINA_UNUSED, 
Evas_Public_Data *e, const char *key
    int n;
 
    n = (Evas_Modifier_Mask)evas_key_modifier_number(&(e->modifiers), keyname);
-   if (n < 0) return;
+   if (n < 0 || n > 63) return;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    e->modifiers.mask |= num;
@@ -163,7 +163,7 @@ _evas_key_modifier_off(Eo *eo_e EINA_UNUSED, 
Evas_Public_Data *e, const char *ke
    int n;
 
    n = evas_key_modifier_number(&(e->modifiers), keyname);
-   if (n < 0) return;
+   if (n < 0 || n > 63) return;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    e->modifiers.mask &= ~num;
@@ -176,7 +176,7 @@ _evas_key_lock_on(Eo *eo_e EINA_UNUSED, Evas_Public_Data 
*e, const char *keyname
    int n;
 
    n = evas_key_lock_number(&(e->locks), keyname);
-   if (n < 0) return;
+   if (n < 0 || n > 63) return;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    e->locks.mask |= num;
@@ -189,7 +189,7 @@ _evas_key_lock_off(Eo *eo_e EINA_UNUSED, Evas_Public_Data 
*e, const char *keynam
    int n;
 
    n = evas_key_lock_number(&(e->locks), keyname);
-   if (n < 0) return;
+   if (n < 0 || n > 63) return;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    e->locks.mask &= ~num;
@@ -206,7 +206,7 @@ _evas_key_modifier_mask_get(Eo *eo_e EINA_UNUSED, 
Evas_Public_Data *e, const cha
 
    if (!keyname) return 0;
    n = evas_key_modifier_number(&(e->modifiers), keyname);
-   if (n < 0) return 0;
+   if (n < 0 || n > 63) return 0;
    num = (Evas_Modifier_Mask)n;
    return 1 << num;
 }

-- 


Reply via email to