Fix buffer overflow issue detected by static analysis tool 23/170723/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Thu, 22 Feb 2018 00:32:33 +0000 (09:32 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 22 Feb 2018 00:32:37 +0000 (09:32 +0900)
Variable (2) was passed to function 'close_option_window' at option.cpp:1049 by calling function 'close_option_window' at option.cpp:1068, where it is used to calculate index for buffer of size 2. This may lead to buffer overflow. Index assigned value at option.cpp:1068.
Variable (2) was passed to function 'close_option_window' at option.cpp:1049 by calling function 'close_option_window' at option.cpp:1515, where it is used to calculate index for buffer of size 2. This may lead to buffer overflow. Index assigned value at option.cpp:1515.

Change-Id: I40ceeaca6ba70a6e1fe6c739e5c3b2830402bb67
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/option.cpp

index b64f9fe..614afad 100644 (file)
@@ -1065,7 +1065,8 @@ static void _naviframe_back_cb(void *data, Evas_Object *obj, void *event_info)
     Elm_Object_Item *bottom_it = elm_naviframe_bottom_item_get(obj);
     if (top_it && bottom_it &&
             (elm_object_item_content_get(top_it) == elm_object_item_content_get(bottom_it))) {
-        close_option_window(type);
+        if (CHECK_ARRAY_INDEX(type, OPTION_WINDOW_TYPE_MAX))
+            close_option_window(type);
     } else {
         elm_naviframe_item_pop(obj);
         read_options(obj);
@@ -1512,7 +1513,8 @@ static void navi_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
     SCLOptionWindowType type = find_option_window_type(obj);
     evas_object_smart_callback_del(obj, "clicked", navi_back_cb);
-    close_option_window(type);
+    if (CHECK_ARRAY_INDEX(type, OPTION_WINDOW_TYPE_MAX))
+        close_option_window(type);
 }
 
 void