From: Hyunjee Kim Date: Thu, 8 Feb 2018 08:52:46 +0000 (+0900) Subject: Fix svace warnings X-Git-Tag: accepted/tizen/unified/20180219.055809~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F94%2F169694%2F3;p=platform%2Fcore%2Fapi%2Fbase-utils.git Fix svace warnings * MEMORY_LEAK * INTEGER_OVERFLOW * UNREACHABLE_CODE Change-Id: Ic2a5f8c2bb6621da2203ad3913b21ebb05bf6424 Signed-off-by: Hyunjee Kim --- diff --git a/i18ninfo/i18ninfo.cpp b/i18ninfo/i18ninfo.cpp index 712de6b..b48b3e3 100644 --- a/i18ninfo/i18ninfo.cpp +++ b/i18ninfo/i18ninfo.cpp @@ -32,6 +32,11 @@ static int ASCIIDOC_FLAG = 0; #define PRINT_ASCIIDOC_LOG(fmt) if (ASCIIDOC_FLAG) printf(fmt) +#define INT_ADD_RANGE_OVERFLOW(a, b) \ + ((b) < 0 \ + ? (a) < INT_MIN - (b) \ + : INT_MAX - (b) < (a)) + const char *default_locale = I18N_ULOCALE_UK; @@ -446,6 +451,13 @@ static int __get_date_basic_format() } PRINT_ASCIIDOC_LOG("|===\n"); + free(f_narrow); + free(f_short); + free(f_long); + free(s_narrow); + free(s_short); + free(s_long); + return 0; } @@ -1086,14 +1098,17 @@ i18n_uchar *_convert_unicode_numeric_values(const i18n_uchar *input, int32_t len int value_length = snprintf(NULL, 0, "%g", value); if (value_length > max_value_length) max_value_length = value_length; - output_length += value_length; + if (!INT_ADD_RANGE_OVERFLOW(output_length, value_length)) + output_length += value_length; } else { - output_length += 1; + if (!INT_ADD_RANGE_OVERFLOW(output_length, 1)) + output_length += 1; } } /* +1 NULL terminator */ - max_value_length += 1; + if (!INT_ADD_RANGE_OVERFLOW(max_value_length, 1)) + max_value_length += 1; i18n_uchar *output = (i18n_uchar *) malloc((output_length + 1) * sizeof(input[0])); i18n_ustring_mem_set(output, '\0', output_length + 1); @@ -1453,9 +1468,9 @@ void showLangInfo(char *locale) printf("\n****************************************"); printf("\n - locales : %s\n", default_locale); ret = __get_language_info(); - } - if (ret == -1) { - printf("get i18n language info list failed\n"); + if (ret == -1) { + printf("get i18n language info list failed\n"); + } } } else { default_locale = locale; @@ -1540,9 +1555,9 @@ void showDatentimeFormat(char *locale) printf("\n****************************************"); printf("\n - locales : %s\n", default_locale); ret = __get_date_basic_format(); - } - if (ret == -1) { - printf("get i18n date and time basic format list failed\n"); + if (ret == -1) { + printf("get i18n date and time basic format list failed\n"); + } } } else { default_locale = locale; @@ -1569,9 +1584,9 @@ void testDatentime(char *input, char *locale) printf("\n****************************************"); printf("\n - locales : %s\n", default_locale); ret = __get_date_and_time(input); - } - if (ret == -1) { - printf("get i18n date and time list failed\n"); + if (ret == -1) { + printf("get i18n date and time list failed\n"); + } } } else { default_locale = locale; @@ -1600,9 +1615,9 @@ void testNumberFormat(char *input, char *locale) printf("\n****************************************"); printf("\n - locales : %s\n", default_locale); ret = __get_number_format(input); - } - if (ret == -1) { - printf("get number format list failed\n"); + if (ret == -1) { + printf("get number format list failed\n"); + } } } else { default_locale = locale; @@ -1630,9 +1645,9 @@ void testNumberSymbol(char *locale) printf("\n****************************************"); printf("\n - locales : %s\n", default_locale); ret = __get_symbol(); - } - if (ret == -1) { - printf("get i18n symbol list failed\n"); + if (ret == -1) { + printf("get i18n symbol list failed\n"); + } } } else { default_locale = locale;