]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Use time_to_uint32_trunc() to cast time_t to uint32_t where needed
authorMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Tue, 3 May 2022 11:23:39 +0000 (14:23 +0300)
committerMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Wed, 4 May 2022 12:31:51 +0000 (15:31 +0300)
This addresses Coverity complaints.

src/lib-index/mail-index-transaction-update.c
src/lib-index/mailbox-log.c
src/lib-storage/index/dbox-multi/mdbox-save.c
src/lib-storage/index/dbox-single/sdbox-save.c
src/lib-storage/index/index-mail.c
src/lib-storage/index/maildir/maildir-save.c
src/lib-storage/list/mailbox-list-index-status.c
src/lib-storage/mail-duplicate.c

index c7bcbd92eed363ad8f607f003db2276ba6846c0d..cff8a95b07b9c423be9ba1f8cdd5e1d9fb67fb38 100644 (file)
@@ -143,7 +143,7 @@ void mail_index_update_day_headers(struct mail_index_transaction *t,
        for (i = 1; i < days; i++)
                hdr.day_first_uid[i] = hdr.day_first_uid[0];
 
-       hdr.day_stamp = stamp;
+       hdr.day_stamp = time_to_uint32_trunc(stamp);
        hdr.day_first_uid[0] = rec->uid;
 
        mail_index_update_header(t,
@@ -677,7 +677,7 @@ mail_index_attribute_set_full(struct mail_index_transaction *t,
                              const char *key, bool pvt, char prefix,
                              time_t timestamp, uint32_t value_len)
 {
-       uint32_t ts = timestamp;
+       uint32_t ts = time_to_uint32_trunc(timestamp);
 
        if (t->attribute_updates == NULL) {
                t->attribute_updates = buffer_create_dynamic(default_pool, 64);
index 433ba298a44255905496d7a8785f5cebb1e4b792..444308f6db363e707c11221aeff1549776fa5d15 100644 (file)
@@ -150,7 +150,7 @@ static int mailbox_log_rotate_if_needed(struct mailbox_log *log)
 void mailbox_log_record_set_timestamp(struct mailbox_log_record *rec,
                                      time_t stamp)
 {
-       cpu32_to_be_unaligned(stamp, rec->timestamp);
+       cpu32_to_be_unaligned(time_to_uint32_trunc(stamp), rec->timestamp);
 }
 
 time_t mailbox_log_record_get_timestamp(const struct mailbox_log_record *rec)
index 7d433420279bde5e4e7ef2352acc4b76ae8aa4eb..f090f6470b95e8d785db58f0ce3a4206632ad635 100644 (file)
@@ -270,7 +270,7 @@ mdbox_save_set_map_uids(struct mdbox_save_context *ctx,
                }
 
                if (mails[i].save_date > 0)
-                       rec.save_date = mails[i].save_date;
+                       rec.save_date = time_to_uint32_trunc(mails[i].save_date);
                else
                        rec.save_date = ioloop_time32;
                rec.map_uid = next_map_uid++;
index 03e24ab586846c78faa0fa675090b8c304ba8373..30d88bc69ce253812ba4ed1b22c852e7af1ddd3c 100644 (file)
@@ -183,7 +183,7 @@ static int dbox_save_finish_write(struct mail_save_context *_ctx)
        if (_ctx->data.save_date != (time_t)-1) {
                /* we can't change ctime, but we can add the date to cache */
                struct index_mail *mail = (struct index_mail *)_ctx->dest_mail;
-               uint32_t t = _ctx->data.save_date;
+               uint32_t t = time_to_uint32_trunc(_ctx->data.save_date);
 
                index_mail_cache_add(mail, MAIL_CACHE_SAVE_DATE, &t, sizeof(t));
        }
index 48122b1673dbc80b27d46eaa2b947558282eaceb..44d1fe90de2058a6472386dbe90edd15faf4c7ca 100644 (file)
@@ -438,7 +438,7 @@ static int index_mail_cache_sent_date(struct index_mail *mail)
                t = 0;
                tz = 0;
        }
-       data->sent_date.time = t;
+       data->sent_date.time = time_to_uint32_trunc(t);
        data->sent_date.timezone = tz;
        index_mail_cache_add(mail, MAIL_CACHE_SENT_DATE,
                             &data->sent_date, sizeof(data->sent_date));
@@ -1048,7 +1048,7 @@ static void index_mail_cache_dates(struct index_mail *mail)
        for (i = 0; i < N_ELEMENTS(date_fields); i++) {
                if (dates[i] != (time_t)-1 &&
                    index_mail_want_cache(mail, date_fields[i])) {
-                       t = dates[i];
+                       t = time_to_uint32_trunc(dates[i]);
                        index_mail_cache_add(mail, date_fields[i],
                                             &t, sizeof(t));
                }
index 5cf7d6abb2893e778fc43a077f45a469bfc3002c..8df0aefbc708ab3158cba9e5ff0bbefe904e1562 100644 (file)
@@ -542,7 +542,7 @@ static int maildir_save_finish_real(struct mail_save_context *_ctx)
        if (_ctx->data.save_date != (time_t)-1) {
                /* we can't change ctime, but we can add the date to cache */
                struct index_mail *mail = INDEX_MAIL(_ctx->dest_mail);
-               uint32_t t = _ctx->data.save_date;
+               uint32_t t = time_to_uint32_trunc(_ctx->data.save_date);
 
                index_mail_cache_add(mail, MAIL_CACHE_SAVE_DATE, &t, sizeof(t));
        }
index b435810df9805f5bee3348ce1116ab975f4ffb21..fbd3b0489c805f1e7e232b3b9e8c50c1a0f1f0ba 100644 (file)
@@ -541,7 +541,7 @@ index_list_update_first_saved(struct mailbox *box,
                        mail_set_seq(mail, seq);
                        if (mail_get_save_date(mail, &save_date) >= 0) {
                                first_saved.uid = mail->uid;
-                               first_saved.timestamp = save_date;
+                               first_saved.timestamp = time_to_uint32_trunc(save_date);
                                break;
                        }
                        if (mailbox_get_last_mail_error(box) != MAIL_ERROR_EXPUNGED) {
index 7a78caa7c7b45724d98c9e71a4471a9dac8e44a9..831545748ec7b24ea5882e93270e546970557f73 100644 (file)
@@ -268,7 +268,7 @@ mail_duplicate_read_records(struct mail_duplicate_transaction *trans,
                        i_assert(record_size ==
                                 sizeof(time_t) + sizeof(uint32_t)*2);
                        memcpy(&stamp, data, sizeof(stamp));
-                       hdr.stamp = stamp;
+                       hdr.stamp = time_to_uint32_trunc(stamp);
                        memcpy(&hdr.id_size, data + sizeof(time_t),
                               sizeof(hdr.id_size));
                        memcpy(&hdr.user_size,
@@ -659,7 +659,7 @@ void mail_duplicate_transaction_commit(
        iter = hash_table_iterate_init(trans->hash);
        while (hash_table_iterate(iter, trans->hash, &d, &d)) {
                if (d->marked) {
-                       rec.stamp = d->time;
+                       rec.stamp = time_to_uint32_trunc(d->time);
                        rec.id_size = d->id_size;
                        rec.user_size = strlen(d->user);