Fix issue detected by static analysis tool for 64bit architecture 64/104764/2
authorInHong Han <inhong1.han@samsung.com>
Tue, 13 Dec 2016 11:39:06 +0000 (20:39 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 16 Dec 2016 04:25:46 +0000 (13:25 +0900)
Change-Id: Iad5bc44ef41a33d4d1053493bb06a40217202b8a

ism/extras/efl_panel/isf_panel_efl.cpp
ism/extras/wayland_immodule/wayland_imcontext.c
ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp
ism/src/scim_iconv.cpp
ism/src/scim_socket.cpp
ism/src/scim_utility.cpp

index a136825..5dbf9f3 100644 (file)
@@ -2680,7 +2680,7 @@ static void ui_mouse_button_pressed_cb (void *data, Evas *e, Evas_Object *button
     _click_down_pos [1] = ev->canvas.y;
 
     if (_click_object == ISF_EFL_CANDIDATE_0 || _click_object == ISF_EFL_CANDIDATE_ITEMS) {
-        unsigned long int index = GPOINTER_TO_INT (data) >> 8;
+        int index = (int)GPOINTER_TO_INT (data) >> 8;
 
 #ifdef HAVE_FEEDBACK
         if (feedback_initialized) {
index f8f7b42..2a0bc4a 100644 (file)
@@ -1831,8 +1831,8 @@ text_input_keysym(void                 *data,
     strncpy((char *)e->key, key, strlen(key));
     strncpy((char *)e->string, string, strlen(string));
 
-    e->window = ecore_wl_window_id_get(imcontext->window);
-    e->event_window = ecore_wl_window_id_get(imcontext->window);
+    e->window = (Ecore_Window)ecore_wl_window_id_get(imcontext->window);
+    e->event_window = (Ecore_Window)ecore_wl_window_id_get(imcontext->window);
     e->dev = _ime_device;
     e->timestamp = 0; /* For distinguishing S/W keyboard event */
 
index af39dae..eb2a4c5 100644 (file)
@@ -2832,7 +2832,7 @@ public:
                 wsc_ctx->surrounding_text = (char*)malloc (len + 1 - sizeof(int));
                 if (wsc_ctx->surrounding_text) {
                     memcpy(&(wsc_ctx->surrounding_cursor), buff, sizeof(int));
-                    memcpy (wsc_ctx->surrounding_text, buff + sizeof(int), len - sizeof(int));
+                    memcpy (wsc_ctx->surrounding_text, buff + sizeof(int), len >= sizeof(int) ? (len - sizeof(int)) : 0);
                     wsc_ctx->surrounding_text[len - sizeof(int)] = '\0';
                     return ECORE_CALLBACK_RENEW;
                 } else {
index b261398..f2c0794 100644 (file)
@@ -214,7 +214,7 @@ IConvert::convert (WideString &dest, const char *src, int src_len) const
     ICONV_CONST char *src_buf_ptr = const_cast<ICONV_CONST char*> (src);
 
     dest_buf_size = SCIM_MAX_BUFSIZE * sizeof (ucs4_t);
-    src_buf_size = src_len;
+    src_buf_size = (size_t) src_len;
 
     ret = iconv (m_impl->m_iconv_to_unicode, &src_buf_ptr, &src_buf_size, &dest_buf_ptr, &dest_buf_size);
     void *pvoid = dest_buf_ptr;
@@ -245,7 +245,7 @@ IConvert::test_convert (const char *src, int src_len) const
     char *dest_buf_ptr = (char*) dest_buf;
     ICONV_CONST char *src_buf_ptr = const_cast<ICONV_CONST char*> (src);
 
-    src_buf_size = src_len;
+    src_buf_size = (size_t) src_len;
     dest_buf_size = SCIM_MAX_BUFSIZE * sizeof (ucs4_t);
 
     ret = iconv (m_impl->m_iconv_to_unicode, &src_buf_ptr, &src_buf_size, &dest_buf_ptr, &dest_buf_size);
index e9ccf24..1281b3e 100644 (file)
@@ -736,7 +736,7 @@ private:
         if (*timeout >= 0) {
             gettimeofday (&begin_tv, 0);
             tv.tv_sec = *timeout / 1000;
-            tv.tv_usec = (*timeout % 1000) * 1000;
+            tv.tv_usec = ((unsigned long int)*timeout % 1000) * 1000;
         }
 
         m_err = 0;
@@ -761,7 +761,7 @@ private:
                 }
                 if (*timeout > 0) {
                     tv.tv_sec = *timeout / 1000;
-                    tv.tv_usec = (*timeout % 1000) * 1000;
+                    tv.tv_usec = ((unsigned long int)*timeout % 1000) * 1000;
                 } else {
                     tv.tv_sec = 0;
                     tv.tv_usec = 0;
index 624b2d1..196db9c 100644 (file)
@@ -1355,7 +1355,7 @@ scim_usleep (unsigned int usec)
     struct timespec req, rem;
 
     req.tv_sec = usec / 1000000;
-    req.tv_nsec = (usec % 1000000) * 1000;
+    req.tv_nsec = ((unsinged long int)usec % 1000000) * 1000;
 
     while (nanosleep (&req, &rem) == -1 && errno == EINTR && (rem.tv_sec != 0 || rem.tv_nsec != 0))
         req = rem;