Fix TC error + some errors 14/101414/1
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 29 Nov 2016 08:42:03 +0000 (17:42 +0900)
committerhyunjee Kim <hj0426.kim@samsung.com>
Thu, 1 Dec 2016 06:20:41 +0000 (22:20 -0800)
Change-Id: I0d34bcb478ce66d3ebcc57a4ccf0fb4280e6db4d
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
src/utils_i18n_ubidi.c

index 43b9697..03449b7 100644 (file)
@@ -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);