From 2febdedf796477bf624e467e55e99d7086861db2 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 21 Jul 2017 09:08:06 +0900 Subject: [PATCH] Fix issues detected by static analysis tool Change-Id: I1a82037f761ea5949f0c9626ab8234172b11efd0 Signed-off-by: Jihoon Kim --- ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 8beb42e..2d192c7 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -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; } -- 2.7.4