dovecot-1.1: dbox: Maildir fallbacking code was returning wrong ...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Dec 19 16:39:28 EET 2008
details: http://hg.dovecot.org/dovecot-1.1/rev/ca86d12f3409
changeset: 8063:ca86d12f3409
user: Timo Sirainen <tss at iki.fi>
date: Fri Dec 19 16:39:19 2008 +0200
description:
dbox: Maildir fallbacking code was returning wrong virtual file sizes.
diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
src/lib-storage/index/dbox/dbox-file-maildir.c | 15 ++++++++++-----
diffs (33 lines):
diff -r e3fa82b21281 -r ca86d12f3409 src/lib-storage/index/dbox/dbox-file-maildir.c
--- a/src/lib-storage/index/dbox/dbox-file-maildir.c Fri Dec 19 16:24:19 2008 +0200
+++ b/src/lib-storage/index/dbox/dbox-file-maildir.c Fri Dec 19 16:39:19 2008 +0200
@@ -9,6 +9,8 @@
#include "dbox-index.h"
#include "dbox-file.h"
#include "dbox-file-maildir.h"
+
+#include <stdlib.h>
static const char *
dbox_file_maildir_get_flags(struct dbox_file *file, enum dbox_metadata_key key)
@@ -92,12 +94,15 @@ const char *dbox_file_maildir_metadata_g
value = dec2str(st.st_ctime);
break;
case DBOX_METADATA_VIRTUAL_SIZE:
- if (maildir_filename_get_size(file->fname,
- MAILDIR_EXTRA_VIRTUAL_SIZE,
- &size))
- value = dec2str(size);
- else
+ if (!maildir_filename_get_size(file->fname,
+ MAILDIR_EXTRA_VIRTUAL_SIZE,
+ &size)) {
value = dbox_file_maildir_get_old_metadata(file, 'W');
+ if (value == NULL)
+ break;
+ size = strtoull(value, NULL, 10);
+ }
+ value = t_strdup_printf("%llx", (unsigned long long)size);
break;
case DBOX_METADATA_POP3_UIDL:
value = dbox_file_maildir_get_old_metadata(file, 'P');
More information about the dovecot-cvs
mailing list