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