dovecot-2.0: maildir: Added asserts to make sure invalid extensi...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Apr 20 17:58:14 EEST 2011
details: http://hg.dovecot.org/dovecot-2.0/rev/fa2e92526716
changeset: 12748:fa2e92526716
user: Timo Sirainen <tss at iki.fi>
date: Wed Apr 20 17:58:03 2011 +0300
description:
maildir: Added asserts to make sure invalid extension records aren't written to uidlist.
diffstat:
src/lib-storage/index/maildir/maildir-uidlist.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diffs (38 lines):
diff -r 4fe53879ceb1 -r fa2e92526716 src/lib-storage/index/maildir/maildir-uidlist.c
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Wed Apr 20 17:57:20 2011 +0300
+++ b/src/lib-storage/index/maildir/maildir-uidlist.c Wed Apr 20 17:58:03 2011 +0300
@@ -1171,6 +1171,8 @@
p = rec->extensions;
while (*p != '\0') {
/* <key><value>\0 */
+ i_assert(MAILDIR_UIDLIST_REC_EXT_KEY_IS_VALID(*p));
+
len = strlen((const char *)p) + 1;
if (*p != (unsigned char)key)
buffer_append(buf, p, len);
@@ -1194,6 +1196,8 @@
struct maildir_uidlist_rec *rec;
int ret;
+ i_assert(MAILDIR_UIDLIST_REC_EXT_KEY_IS_VALID(key));
+
ret = maildir_uidlist_lookup_rec(uidlist, uid, &rec);
if (ret <= 0) {
if (ret < 0)
@@ -1291,6 +1295,7 @@
str_printfa(str, "%u", rec->uid);
if (rec->extensions != NULL) {
for (p = rec->extensions; *p != '\0'; ) {
+ i_assert(MAILDIR_UIDLIST_REC_EXT_KEY_IS_VALID(*p));
len = strlen((const char *)p);
str_append_c(str, ' ');
str_append_n(str, p, len);
@@ -1870,6 +1875,8 @@
pool_t pool = ctx->partial ?
ctx->uidlist->record_pool : ctx->record_pool;
+ i_assert(MAILDIR_UIDLIST_REC_EXT_KEY_IS_VALID(key));
+
maildir_uidlist_rec_set_ext(rec, pool, key, value);
}
More information about the dovecot-cvs
mailing list