aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/camel-vee-folder.c10
2 files changed, 14 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index a3cc3d5422..bccacbea60 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,10 @@
+2002-04-17 Jeffrey Stedfast <fejj@ximian.com>
+
+ * camel-vee-folder.c (vee_search_by_expression): If the vee-folder
+ is the unmatched, we don't have our own expression so we cannot
+ merge them. Instead, just use the expression passed in. This fixes
+ a Null-Pointer-Read crash on Solaris systems at least.
+
2002-04-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder): Get
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c
index c7f7be98f1..ab5bcf3c18 100644
--- a/camel/camel-vee-folder.c
+++ b/camel/camel-vee-folder.c
@@ -601,10 +601,14 @@ vee_search_by_expression(CamelFolder *folder, const char *expression, CamelExcep
CamelVeeFolder *vf = (CamelVeeFolder *)folder;
struct _CamelVeeFolderPrivate *p = _PRIVATE(vf);
GHashTable *searched = g_hash_table_new(NULL, NULL);
-
+
CAMEL_VEE_FOLDER_LOCK(vf, subfolder_lock);
-
- expr = g_strdup_printf("(and %s %s)", vf->expression, expression);
+
+ if (vf != folder_unmatched)
+ expr = g_strdup_printf ("(and %s %s)", vf->expression, expression);
+ else
+ expr = g_strdup (expression);
+
node = p->folders;
while (node) {
CamelFolder *f = node->data;