aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog5
-rw-r--r--camel/camel-vee-folder.c21
2 files changed, 17 insertions, 9 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index d37731e83a..6af3c77a90 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-07 Not Zed <NotZed@Ximian.com>
+
+ * camel-vee-folder.c (vee_search_by_expression): handle a null
+ return from search_by_expression, for bug #33786.
+
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c (imap_next_word):
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c
index 82f9c7feb0..9422f77e19 100644
--- a/camel/camel-vee-folder.c
+++ b/camel/camel-vee-folder.c
@@ -686,16 +686,19 @@ vee_search_by_expression(CamelFolder *folder, const char *expression, CamelExcep
/* make sure we only search each folder once - for unmatched folder to work right */
if (g_hash_table_lookup(searched, f) == NULL) {
camel_vee_folder_hash_folder(f, hash);
- matches = camel_folder_search_by_expression(f, expression, ex);
- for (i = 0; i < matches->len; i++) {
- char *uid = matches->pdata[i], *vuid;
-
- vuid = g_malloc(strlen(uid)+9);
- memcpy(vuid, hash, 8);
- strcpy(vuid+8, uid);
- g_ptr_array_add(result, vuid);
+ /* FIXME: shouldn't ignore search exception */
+ matches = camel_folder_search_by_expression(f, expression, NULL);
+ if (matches) {
+ for (i = 0; i < matches->len; i++) {
+ char *uid = matches->pdata[i], *vuid;
+
+ vuid = g_malloc(strlen(uid)+9);
+ memcpy(vuid, hash, 8);
+ strcpy(vuid+8, uid);
+ g_ptr_array_add(result, vuid);
+ }
+ camel_folder_search_free(f, matches);
}
- camel_folder_search_free(f, matches);
g_hash_table_insert(searched, f, f);
}
node = g_list_next(node);