diff options
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/camel-vee-folder.c | 10 |
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; |