Coverity issue fixes for email service
[platform/core/messaging/email-service.git] / email-core / email-core-imap-mailbox.c
index 6585807..4a96d77 100755 (executable)
@@ -734,7 +734,29 @@ int emcore_download_mailbox_list(void *mail_stream,
        *count        = holder.num;
        *mailbox_list = (email_internal_mailbox_t*) holder.data;
 
-       ret = true;
+
+       EM_DEBUG_LOG("count: [%d], mailbox_list[%p]", *count, *mailbox_list);
+       if (*count <= 0 || *mailbox_list == NULL) {
+               err = EMAIL_ERROR_MAILBOX_NOT_FOUND;
+               ret = false;
+       } else {
+               ret = true;
+
+               /* checking once more if there is a INBOX or not */
+               int i = 0;
+               bool is_found_inbox = false;
+               for (i = 0; i < *count; i++) {
+                       if ((*mailbox_list)[i].mailbox_type == EMAIL_MAILBOX_TYPE_INBOX || !g_ascii_strcasecmp((*mailbox_list)[i].mailbox_name, "INBOX")) {
+                               is_found_inbox = true;
+                               break;
+                       }
+               }
+               if (!is_found_inbox) {
+                       EM_DEBUG_CRITICAL_EXCEPTION("There is no INBOX!");
+                       err = EMAIL_ERROR_MAILBOX_NOT_FOUND;
+                       ret = false;
+               }
+       }
 
 FINISH_OFF:
        if (err_code)
@@ -1015,7 +1037,7 @@ FINISH_OFF:
 quota_t callback_for_get_quota_root(MAILSTREAM *stream, unsigned char *mailbox, STRINGLIST *quota_root_list)
 {
        EM_DEBUG_FUNC_BEGIN();
-       quota_t ret_quota;
+       quota_t ret_quota = NIL;
        EM_DEBUG_FUNC_END();
        return ret_quota;
 }
@@ -1023,7 +1045,7 @@ quota_t callback_for_get_quota_root(MAILSTREAM *stream, unsigned char *mailbox,
 quota_t callback_for_get_quota(MAILSTREAM *stream, unsigned char *quota_root, QUOTALIST *quota_list)
 {
        EM_DEBUG_FUNC_BEGIN();
-       quota_t ret_quota;
+       quota_t ret_quota = NIL;
        EM_DEBUG_FUNC_END();
        return ret_quota;
 }