Modified the checking logic for password update 19/54819/1 accepted/tizen/mobile/20151218.090108 accepted/tizen/tv/20151218.085926 accepted/tizen/wearable/20151218.090042 submit/tizen/20151218.054722 submit/tizen_common/20151229.154718
authorSunghyun Kwon <sh0701.kwon@samsung.com>
Fri, 18 Dec 2015 05:44:06 +0000 (14:44 +0900)
committerSunghyun Kwon <sh0701.kwon@samsung.com>
Fri, 18 Dec 2015 05:44:06 +0000 (14:44 +0900)
Change-Id: Id012668f368bace2cecdf5c2b721f5a3221717aa

email-core/email-core-key-manager.c
email-core/email-storage/email-storage.c

index d79e19e..055f86b 100644 (file)
@@ -60,7 +60,7 @@ INTERNAL_FUNC int emcore_add_password_in_key_manager(char *data_name, char *stor
        ckmc_raw_buffer_s email_data;
        char errno_buf[ERRNO_BUF_SIZE] = {0};
 
-       if (data_name == NULL) {
+       if (data_name == NULL || stored_data == NULL) {
                EM_DEBUG_EXCEPTION("Invalid parameter");
                err = EMAIL_ERROR_INVALID_PARAM;
                return err;
index e1fb35c..c1ed451 100755 (executable)
@@ -4419,32 +4419,35 @@ INTERNAL_FUNC int emstorage_update_account_password(char *multi_user_name, int i
        EM_DEBUG_LOG_SEC("send_password_file_name [%s] input_outgoing_server_password [%s]",
                                                send_password_file_name, input_outgoing_server_password);
 
-       err = emcore_remove_password_in_key_manager(recv_password_file_name);
-       if (err != EMAIL_ERROR_NONE) {
-               EM_DEBUG_EXCEPTION_SEC("emcore_remove_password_in_key_manager: file[%s]", recv_password_file_name);
-               goto FINISH_OFF;
-       }
+       if (input_incoming_server_password) {
+               err = emcore_remove_password_in_key_manager(recv_password_file_name);
+               if (err != EMAIL_ERROR_NONE) {
+                       EM_DEBUG_EXCEPTION_SEC("emcore_remove_password_in_key_manager: file[%s]", recv_password_file_name);
+                       goto FINISH_OFF;
+               }
 
-       /*  save recv passwords to the secure storage */
-       err = emcore_add_password_in_key_manager(recv_password_file_name, input_incoming_server_password);
-       if (err != EMAIL_ERROR_NONE) {
-               EM_DEBUG_EXCEPTION("emcore_add_password_in_key_manager failed : [%d]", err);
-               goto FINISH_OFF;
+               /*  save recv passwords to the secure storage */
+               err = emcore_add_password_in_key_manager(recv_password_file_name, input_incoming_server_password);
+               if (err != EMAIL_ERROR_NONE) {
+                       EM_DEBUG_EXCEPTION("emcore_add_password_in_key_manager failed : [%d]", err);
+                       goto FINISH_OFF;
+               }
        }
 
-       err = emcore_remove_password_in_key_manager(send_password_file_name);
-       if (err != EMAIL_ERROR_NONE) {
-               EM_DEBUG_EXCEPTION_SEC("emcore_remove_password_in_key_manager: file[%s]", send_password_file_name);
-               goto FINISH_OFF;
-       }
+       if (input_outgoing_server_password) {
+               err = emcore_remove_password_in_key_manager(send_password_file_name);
+               if (err != EMAIL_ERROR_NONE) {
+                       EM_DEBUG_EXCEPTION_SEC("emcore_remove_password_in_key_manager: file[%s]", send_password_file_name);
+                       goto FINISH_OFF;
+               }
 
-       /*  save send passwords to the secure storage */
-       err = emcore_add_password_in_key_manager(send_password_file_name, input_outgoing_server_password);
-       if (err != EMAIL_ERROR_NONE) {
-               EM_DEBUG_EXCEPTION("emcore_add_password_in_key_manager failed : [%d]", err);
-               goto FINISH_OFF;
+               /*  save send passwords to the secure storage */
+               err = emcore_add_password_in_key_manager(send_password_file_name, input_outgoing_server_password);
+               if (err != EMAIL_ERROR_NONE) {
+                       EM_DEBUG_EXCEPTION("emcore_add_password_in_key_manager failed : [%d]", err);
+                       goto FINISH_OFF;
+               }
        }
-
 FINISH_OFF:
 
        EM_DEBUG_FUNC_END("err [%d]", err);