Fix issues detected by static analysis tool 49/139849/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Fri, 21 Jul 2017 00:08:06 +0000 (09:08 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 21 Jul 2017 00:08:45 +0000 (09:08 +0900)
Change-Id: I1a82037f761ea5949f0c9626ab8234172b11efd0
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp

index 8beb42e..2d192c7 100644 (file)
@@ -395,7 +395,9 @@ _wsc_im_ctx_input_panel_data (void *data, struct wl_input_method_context *im_ctx
         }
 
         wsc_ctx->impl->imdata = calloc(1, input_panel_data_length);
-        memcpy(wsc_ctx->impl->imdata, input_panel_data, input_panel_data_length);
+        if (wsc_ctx->impl->imdata)
+            memcpy(wsc_ctx->impl->imdata, input_panel_data, input_panel_data_length);
+
         wsc_ctx->impl->imdata_size = input_panel_data_length;
     }
 
@@ -1800,11 +1802,13 @@ wsc_commit_preedit (WSCContextISF* wsc_ctx)
 
         memcpy (str_buffer, wsc_ctx->preedit_str, MAX_PREEDIT_BUFSIZE - 1);
         str_buffer[MAX_PREEDIT_BUFSIZE - 1] = '\0';
+        char *old_preedit_str = wsc_ctx->preedit_str;
         wsc_ctx->preedit_str = (char*)realloc (wsc_ctx->preedit_str, sizeof(char) * MAX_PREEDIT_BUFSIZE);
         if (wsc_ctx->preedit_str) {
             memcpy (wsc_ctx->preedit_str, str_buffer, strlen(str_buffer));
             wsc_ctx->preedit_str[MAX_PREEDIT_BUFSIZE - 1] = '\0';
         } else {
+            free (old_preedit_str);
             LOGE ("realloc failed");
             return;
         }