summaryrefslogtreecommitdiff
path: root/libmu_sieve
diff options
context:
space:
mode:
Diffstat (limited to 'libmu_sieve')
-rw-r--r--libmu_sieve/extensions/moderator.c9
-rw-r--r--libmu_sieve/tests.c15
2 files changed, 18 insertions, 6 deletions
diff --git a/libmu_sieve/extensions/moderator.c b/libmu_sieve/extensions/moderator.c
index 3544d88f9..4fe2e8375 100644
--- a/libmu_sieve/extensions/moderator.c
+++ b/libmu_sieve/extensions/moderator.c
@@ -284,8 +284,13 @@ moderator_action (mu_sieve_machine_t mach)
mu_sieve_abort (mach);
}
- mu_message_get_num_parts (msg, &nparts);
-
+ rc = mu_message_get_num_parts (msg, &nparts);
+ if (rc)
+ {
+ mu_sieve_error (mach, "mu_message_get_num_parts: %s", mu_strerror (rc));
+ mu_sieve_abort (mach);
+ }
+
if (nparts != 3) /* Mailman moderation requests have three parts */
{
mu_sieve_error (mach, _("expected 3 parts, but found %lu"),
diff --git a/libmu_sieve/tests.c b/libmu_sieve/tests.c
index da3872f1c..c346747e4 100644
--- a/libmu_sieve/tests.c
+++ b/libmu_sieve/tests.c
@@ -176,17 +176,24 @@ sieve_test_header (mu_sieve_machine_t mach)
v = mu_sieve_get_arg_untyped (mach, 1);
clos.message = mach->msg;
+ clos.nparts = 0;
if (mu_sieve_get_tag (mach, "mime", SVT_VOID, NULL))
{
int ismime = 0;
- mu_message_is_multipart (mach->msg, &ismime);
+ rc = mu_message_is_multipart (mach->msg, &ismime);
+ if (rc)
+ mu_diag_funcall (MU_DIAG_ERR, "mu_message_is_multipart",
+ NULL, rc);
if (ismime)
- mu_message_get_num_parts (mach->msg, &clos.nparts);
+ {
+ rc = mu_message_get_num_parts (mach->msg, &clos.nparts);
+ if (rc)
+ mu_diag_funcall (MU_DIAG_ERR, "mu_message_get_num_parts",
+ NULL, rc);
+ }
}
- else
- clos.nparts = 0;
rc = mu_sieve_vlist_compare (mach, h, v, retrieve_header, NULL, &clos);
return rc;

Return to:

Send suggestions and report system problems to the System administrator.