[dovecot-cvs] dovecot/src/lib-storage/index index-mail-headers.c,
1.47, 1.48 index-search.c, 1.101, 1.102
cras at dovecot.org
cras at dovecot.org
Sun Apr 17 18:43:47 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv21760/index
Modified Files:
index-mail-headers.c index-search.c
Log Message:
Don't even try to allow searching zero number of headers.
Index: index-mail-headers.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-mail-headers.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- index-mail-headers.c 16 Apr 2005 22:22:23 -0000 1.47
+++ index-mail-headers.c 17 Apr 2005 15:43:45 -0000 1.48
@@ -499,6 +499,8 @@
int ret;
array_t ARRAY_DEFINE(header_values, const char *);
+ i_assert(field != NULL);
+
field_idx = get_header_field_idx(mail->ibox, field);
dest = str_new(mail->data_pool, 128);
@@ -631,20 +633,18 @@
pool_t pool;
unsigned int i, count;
+ i_assert(*headers != NULL);
+
for (count = 0, name = headers; *name != NULL; name++)
count++;
t_push();
- if (count > 0) {
- /* @UNSAFE: headers need to be sorted for filter stream. */
- sorted_headers = t_new(const char *, count);
- memcpy(sorted_headers, headers,
- count * sizeof(*sorted_headers));
- qsort(sorted_headers, count, sizeof(*sorted_headers),
- strcasecmp_p);
- headers = sorted_headers;
- }
+ /* @UNSAFE: headers need to be sorted for filter stream. */
+ sorted_headers = t_new(const char *, count);
+ memcpy(sorted_headers, headers, count * sizeof(*sorted_headers));
+ qsort(sorted_headers, count, sizeof(*sorted_headers), strcasecmp_p);
+ headers = sorted_headers;
/* @UNSAFE */
fields = t_new(struct mail_cache_field, count);
@@ -660,15 +660,13 @@
ctx->pool = pool;
ctx->count = count;
- if (count > 0) {
- ctx->idx = p_new(pool, unsigned int, count);
- ctx->name = p_new(pool, const char *, count);
+ ctx->idx = p_new(pool, unsigned int, count);
+ ctx->name = p_new(pool, const char *, count);
- /* @UNSAFE */
- for (i = 0; i < count; i++) {
- ctx->idx[i] = fields[i].idx;
- ctx->name[i] = p_strdup(pool, headers[i]);
- }
+ /* @UNSAFE */
+ for (i = 0; i < count; i++) {
+ ctx->idx[i] = fields[i].idx;
+ ctx->name[i] = p_strdup(pool, headers[i]);
}
t_pop();
Index: index-search.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-search.c,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -d -r1.101 -r1.102
--- index-search.c 29 Mar 2005 16:48:46 -0000 1.101
+++ index-search.c 17 Apr 2005 15:43:45 -0000 1.102
@@ -483,6 +483,7 @@
return FALSE;
} else {
/* FIXME: do this once in init */
+ i_assert(*headers != NULL);
headers_ctx =
mailbox_header_lookup_init(&ctx->ibox->box,
headers);
More information about the dovecot-cvs
mailing list