{
if (length <= 0)
return NULL;
- int32_t output_length = 0;
+ int32_t output_length = 1;
double *values = (double *) malloc(length * sizeof(double));
int max_value_length = 0;
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);
+ i18n_uchar *output = (i18n_uchar *) calloc(output_length, sizeof(input[0]));
+ if (output == NULL) {
+ free(values);
+ return NULL;
+ }
+ i18n_ustring_mem_set(output, '\0', output_length);
char *tmp = (char *) malloc((max_value_length) * sizeof(input[0]));
i18n_uchar *c = (i18n_uchar *) malloc((max_value_length) * sizeof(input[0]));
if (NULL == tmp) {
free(values);
free(c);
- free(tmp);
free(output);
return NULL;
}
printf(" Input number : %s\n", input_number);
number_to_convert =
(i18n_uchar *) malloc(sizeof(i18n_uchar) * (strlen(input_number) + 1));
- if (NULL == number_to_convert) {
- free(number_to_convert);
+ if (NULL == number_to_convert)
return I18N_ERROR_OUT_OF_MEMORY;
- }
+
i18n_ustring_copy_ua_n(number_to_convert, input_number, BUF_SIZE);
i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
+ if (NULL == str) {
+ printf("\nError: Out of memory.\n");
+ free(number_to_convert);
+ return 0;
+ }
char p_string[BUF_SIZE];
i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
printf(" Convert number : %s\n", p_string);
i18n_ustring_copy_ua(number_to_convert, input_number);
i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
+ if (NULL == str) {
+ printf("\nError: Out of memory.\n");
+ free(number_to_convert);
+ return 0;
+ }
char p_string[BUF_SIZE];
i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
printf(" Convert number : %s\n", p_string);