From fe12b0a8169f4993093022fe6b360b54d57d26a3 Mon Sep 17 00:00:00 2001 From: raster Date: Tue, 26 Jul 2011 11:47:40 +0000 Subject: [PATCH] segv if preedit str null! git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@61747 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/modules/immodules/xim/ecore_imf_xim.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/modules/immodules/xim/ecore_imf_xim.c b/src/modules/immodules/xim/ecore_imf_xim.c index d35eb70..bc8f3f8 100644 --- a/src/modules/immodules/xim/ecore_imf_xim.c +++ b/src/modules/immodules/xim/ecore_imf_xim.c @@ -177,12 +177,22 @@ _ecore_imf_context_xim_preedit_string_get(Ecore_IMF_Context *ctx, char *utf8; int len; imf_context_data = ecore_imf_context_data_get(ctx); - utf8 = eina_unicode_unicode_to_utf8(imf_context_data->preedit_chars, - &len); - if(str) - *str = utf8; + if (imf_context_data->preedit_chars) + { + utf8 = eina_unicode_unicode_to_utf8(imf_context_data->preedit_chars, + &len); + if(str) + *str = utf8; + else + free(utf8); + } else - free(utf8); + { + if(str) + *str = NULL; + if(cursor_pos) + *cursor_pos = 0; + } if(cursor_pos) *cursor_pos = imf_context_data->preedit_cursor; -- 2.7.4