fix wrong realloc(TSAM_10622) 91/101391/4
authorintae, jeon <intae.jeon@samsung.com>
Thu, 1 Dec 2016 05:35:40 +0000 (14:35 +0900)
committerintae jeon <intae.jeon@samsung.com>
Thu, 1 Dec 2016 07:34:38 +0000 (23:34 -0800)
Change-Id: Icb6c3fbacadba7e4df57e3a57454bca385f37976
Signed-off-by: intae, jeon <intae.jeon@samsung.com>
email-core/email-core-account.c
email-core/email-core-task-manager.c

index dac6d42..a8fde23 100755 (executable)
@@ -1409,7 +1409,17 @@ size_t emcore_curl_write_callback(char* data, size_t size, size_t nmemb, void* t
                last_pos = EM_SAFE_STRLEN(*result_string);
                new_buffer_length = last_pos + received_length + 1;
                EM_DEBUG_LOG("new_buffer_length[%d]", new_buffer_length);
-               *result_string = realloc(*result_string, new_buffer_length);
+
+               char *new_result_string = NULL;
+               new_result_string = realloc(*result_string, new_buffer_length);
+               if (NULL == new_result_string) {
+                       EM_DEBUG_EXCEPTION("memory reallocation failed");
+                       EM_SAFE_FREE(*result_string);
+                       received_length = 0;
+                       goto FINISH_OFF;
+               }
+
+               *result_string = new_result_string;
        }
 
        if (*result_string == NULL) {
index c7ef50e..de449ae 100755 (executable)
@@ -233,17 +233,30 @@ static int emcore_register_task_handler(email_task_type_t input_task_type,
        _task_handler_array_size++;
 
        if (_task_handler_array) {
-               _task_handler_array = realloc(_task_handler_array, sizeof(email_task_handler_t*) * _task_handler_array_size);
+
+               email_task_handler_t **_new_task_handler_array = NULL;
+
+               _new_task_handler_array = realloc(_task_handler_array, sizeof(email_task_handler_t*) * _task_handler_array_size);
+               if (NULL == _new_task_handler_array) {
+                       EM_DEBUG_EXCEPTION("memory reallocation failed");
+                       err = EMAIL_ERROR_OUT_OF_MEMORY;
+                       EM_SAFE_FREE(new_task_handler);
+                       EM_SAFE_FREE(_task_handler_array);
+                       goto FINISH_OFF;
+               }
+
+               _task_handler_array = _new_task_handler_array;
        } else {
                _task_handler_array = malloc(sizeof(email_task_handler_t*) * _task_handler_array_size);
-       }
 
-       if (_task_handler_array == NULL) {
-               err = EMAIL_ERROR_OUT_OF_MEMORY;
-        EM_SAFE_FREE(new_task_handler);
-               goto FINISH_OFF;
+               if (_task_handler_array == NULL) {
+                       err = EMAIL_ERROR_OUT_OF_MEMORY;
+                       EM_SAFE_FREE(new_task_handler);
+                       goto FINISH_OFF;
+               }
        }
 
+
        _task_handler_array[_task_handler_array_size - 1] = new_task_handler;
 
 FINISH_OFF: