From 8347e12277ec8dee7280b18ec0c992ad97909923 Mon Sep 17 00:00:00 2001 From: Hyunjee Kim Date: Tue, 29 Nov 2016 17:42:03 +0900 Subject: [PATCH] Fix TC error + some errors Change-Id: I0d34bcb478ce66d3ebcc57a4ccf0fb4280e6db4d Signed-off-by: Hyunjee Kim --- src/utils_i18n_ubidi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/utils_i18n_ubidi.c b/src/utils_i18n_ubidi.c index 43b9697..03449b7 100644 --- a/src/utils_i18n_ubidi.c +++ b/src/utils_i18n_ubidi.c @@ -263,13 +263,18 @@ int i18n_ubidi_get_text(const i18n_ubidi_h ubidi, char **text) * UTF-16 uses at least two bytes, growing up to four bytes as necessary, * that is why we multiply UChar by 4. */ - char _text[4*ulen+1]; + char *_text = NULL; + _text = (char *)malloc(4 * ulen + 1); + retv_if(_text == NULL, I18N_ERROR_OUT_OF_MEMORY); + memset(_text, 0x0, 4 * ulen + 1); + u_austrcpy(_text, _ubidi_text); int32_t len = strlen(_text); *text = (char *)malloc(len + 1); retv_if(*text == NULL, I18N_ERROR_OUT_OF_MEMORY); + memset(*text, 0x0, len+1); strncpy(*text, _text, len); @@ -324,7 +329,7 @@ int i18n_ubidi_get_visual_run(i18n_ubidi_h ubidi, int i18n_ubidi_invert_map(const int32_t *scr_map, int32_t length, int32_t *dest_map) { - retv_if(scr_map == NULL || dest_map == NULL, I18N_ERROR_INVALID_PARAMETER); + retv_if(scr_map == NULL || dest_map == NULL || length <= 0, I18N_ERROR_INVALID_PARAMETER); ubidi_invertMap(scr_map, dest_map, length); -- 2.7.4