raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=48f45da5fb97ffa65a36ba310f86f8794f90baa5

commit 48f45da5fb97ffa65a36ba310f86f8794f90baa5
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Aug 22 18:11:03 2014 +0900

    fix possible integer overflows with bitshift
    
    these are very unlinkely, but in theory possible so check return value
    and don't use an invalid bitshift.
    
    fixes CID 1039318 and CID 1039319
---
 src/lib/evas/canvas/evas_key.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/evas/canvas/evas_key.c b/src/lib/evas/canvas/evas_key.c
index 82472aa..76b785b 100644
--- a/src/lib/evas/canvas/evas_key.c
+++ b/src/lib/evas/canvas/evas_key.c
@@ -53,6 +53,7 @@ evas_key_modifier_is_set(const Evas_Modifier *m, const char 
*keyname)
    if (!keyname) return 0;
    n = evas_key_modifier_number(m, keyname);
    if (n < 0) return 0;
+   else if (n >= 64) return 0;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    if (m->mask & num) return 1;
@@ -69,6 +70,7 @@ evas_key_lock_is_set(const Evas_Lock *l, const char *keyname)
    if (!keyname) return 0;
    n = evas_key_lock_number(l, keyname);
    if (n < 0) return 0;
+   else if (n >= 64) return 0;
    num = (Evas_Modifier_Mask)n;
    num = 1 << num;
    if (l->mask & num) return 1;

-- 


Reply via email to