From 3e1c856d90c0968adde15c23aba96f585a07e8c6 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 26 Jul 2011 11:47:40 +0000 Subject: [PATCH] segv if preedit str null! SVN revision: 61747 --- .../src/modules/immodules/xim/ecore_imf_xim.c | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/legacy/ecore/src/modules/immodules/xim/ecore_imf_xim.c b/legacy/ecore/src/modules/immodules/xim/ecore_imf_xim.c index d35eb70d91..bc8f3f82f2 100644 --- a/legacy/ecore/src/modules/immodules/xim/ecore_imf_xim.c +++ b/legacy/ecore/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;