]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
maildir: Make sure we don't replace correct mail sizes with broken ones when preservi...
authorTimo Sirainen <tss@iki.fi>
Tue, 29 Apr 2014 13:44:58 +0000 (16:44 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 29 Apr 2014 13:44:58 +0000 (16:44 +0300)
src/lib-storage/index/maildir/maildir-save.c

index 578bab165c60643f9d84e9b44626c5dd3b1b3c18..792fb6e0dac3d1653bdd624361234c431fc5af5e 100644 (file)
@@ -851,10 +851,12 @@ maildir_filename_check_conflicts(struct maildir_save_context *ctx,
                                              mf->dest_basename) != NULL) {
                /* file already exists. give it another name.
                   but preserve the size/vsize in the filename if possible */
-               if (maildir_filename_get_size(mf->dest_basename,
+               if (mf->size == (uoff_t)-1 &&
+                   maildir_filename_get_size(mf->dest_basename,
                                              MAILDIR_EXTRA_FILE_SIZE, &size))
                        mf->size = size;
-               if (maildir_filename_get_size(mf->dest_basename,
+               if (mf->vsize == (uoff_t)-1 &&
+                   maildir_filename_get_size(mf->dest_basename,
                                              MAILDIR_EXTRA_VIRTUAL_SIZE,
                                              &size))
                        mf->vsize = size;