From de9dea4ff806dcdd471fb340c41b0eb57a6b56de Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Sun, 14 Jan 2018 20:00:04 +0200 Subject: [PATCH] expire: Contexts are now required or checked Satisfied static analyzers --- src/plugins/expire/expire-plugin.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/plugins/expire/expire-plugin.c b/src/plugins/expire/expire-plugin.c index 208797dd7a..1d109b1681 100644 --- a/src/plugins/expire/expire-plugin.c +++ b/src/plugins/expire/expire-plugin.c @@ -20,10 +20,12 @@ #define EXPIRE_CONTEXT(obj) \ MODULE_CONTEXT(obj, expire_storage_module) +#define EXPIRE_CONTEXT_REQUIRE(obj) \ + MODULE_CONTEXT_REQUIRE(obj, expire_storage_module) #define EXPIRE_MAIL_CONTEXT(obj) \ - MODULE_CONTEXT(obj, expire_mail_module) + MODULE_CONTEXT_REQUIRE(obj, expire_mail_module) #define EXPIRE_USER_CONTEXT(obj) \ - MODULE_CONTEXT(obj, expire_mail_user_module) + MODULE_CONTEXT_REQUIRE(obj, expire_mail_user_module) struct expire_mail_index_header { uint32_t timestamp; @@ -62,7 +64,7 @@ expire_mailbox_transaction_begin(struct mailbox *box, enum mailbox_transaction_flags flags, const char *reason) { - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(box); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(box); struct mailbox_transaction_context *t; struct expire_transaction_context *xt; @@ -97,7 +99,7 @@ static void first_save_timestamp(struct mailbox *box, time_t *stamp_r) static uint32_t expire_get_ext_id(struct mailbox *box) { - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(box); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(box); if (xpr_box->expire_ext_id != (uint32_t)-1) return xpr_box->expire_ext_id; @@ -211,8 +213,8 @@ expire_mailbox_transaction_commit(struct mailbox_transaction_context *t, struct mail_transaction_commit_changes *changes_r) { struct mail_user *user = t->box->storage->user; - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(t->box); - struct expire_transaction_context *xt = EXPIRE_CONTEXT(t); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(t->box); + struct expire_transaction_context *xt = EXPIRE_CONTEXT_REQUIRE(t); struct mailbox *box = t->box; time_t new_stamp = 0; bool update_dict = FALSE; @@ -283,8 +285,8 @@ expire_mailbox_transaction_commit(struct mailbox_transaction_context *t, static void expire_mailbox_transaction_rollback(struct mailbox_transaction_context *t) { - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(t->box); - struct expire_transaction_context *xt = EXPIRE_CONTEXT(t); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(t->box); + struct expire_transaction_context *xt = EXPIRE_CONTEXT_REQUIRE(t); xpr_box->module_ctx.super.transaction_rollback(t); i_free(xt); @@ -295,7 +297,7 @@ static void expire_mail_expunge(struct mail *_mail) struct mail_private *mail = (struct mail_private *)_mail; union mail_module_context *xpr_mail = EXPIRE_MAIL_CONTEXT(mail); struct expire_transaction_context *xt = - EXPIRE_CONTEXT(_mail->transaction); + EXPIRE_CONTEXT_REQUIRE(_mail->transaction); if (_mail->seq == 1) { /* first mail expunged, database needs to be updated */ @@ -325,8 +327,8 @@ static void expire_mail_allocated(struct mail *_mail) static int expire_save_finish(struct mail_save_context *ctx) { struct expire_transaction_context *xt = - EXPIRE_CONTEXT(ctx->transaction); - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(ctx->transaction->box); + EXPIRE_CONTEXT_REQUIRE(ctx->transaction); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(ctx->transaction->box); xt->saves = TRUE; return xpr_box->module_ctx.super.save_finish(ctx); @@ -336,8 +338,8 @@ static int expire_copy(struct mail_save_context *ctx, struct mail *mail) { struct expire_transaction_context *xt = - EXPIRE_CONTEXT(ctx->transaction); - struct expire_mailbox *xpr_box = EXPIRE_CONTEXT(ctx->transaction->box); + EXPIRE_CONTEXT_REQUIRE(ctx->transaction); + struct expire_mailbox *xpr_box = EXPIRE_CONTEXT_REQUIRE(ctx->transaction->box); xt->saves = TRUE; return xpr_box->module_ctx.super.copy(ctx, mail); -- 2.47.3