From 98dc61e0ea82bb8a54884b018374264fe0e72125 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 17 Jul 2017 19:42:30 +0900 Subject: [PATCH] Fix deference of NULL return issue Pointer 'new_text' returned from function 'malloc' at wayland_panel_agent_module.cpp:1103 may be null, and it is dereferenced at wayland_panel_agent_module.cpp:1109. Change-Id: Idcd50ab2d93a43f5664b6736dc8e8643f1705a58 Signed-off-by: Jihoon Kim --- .../panelagent/wayland/wayland_panel_agent_module.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 5d54433..d70e447 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -1101,12 +1101,14 @@ insert_text (const char *text, uint32_t offset, const char *insert) { uint32_t tlen = strlen (text), ilen = strlen (insert); char *new_text = (char*)malloc (tlen + ilen + 1); - if ((unsigned int) tlen < offset) - offset = tlen; - memcpy (new_text, text, offset); - memcpy (new_text + offset, insert, ilen); - memcpy (new_text + offset + ilen, text + offset, tlen - offset); - new_text[tlen + ilen] = '\0'; + if (new_text) { + if ((unsigned int) tlen < offset) + offset = tlen; + memcpy (new_text, text, offset); + memcpy (new_text + offset, insert, ilen); + memcpy (new_text + offset + ilen, text + offset, tlen - offset); + new_text[tlen + ilen] = '\0'; + } return new_text; } -- 2.7.4