Skip to content

Commit

Permalink
imapsieve: Check imapsieve contexts
Browse files Browse the repository at this point in the history
Satisfies static analyzer
  • Loading branch information
cmouse authored and stephanbosch committed Feb 14, 2018
1 parent 973963e commit b2de2ae
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions src/plugins/imapsieve/imap-sieve-storage.c
Expand Up @@ -22,10 +22,14 @@

#define IMAP_SIEVE_USER_CONTEXT(obj) \
MODULE_CONTEXT(obj, imap_sieve_user_module)
#define IMAP_SIEVE_USER_CONTEXT_REQUIRE(obj) \
MODULE_CONTEXT_REQUIRE(obj, imap_sieve_user_module)
#define IMAP_SIEVE_CONTEXT(obj) \
MODULE_CONTEXT(obj, imap_sieve_storage_module)
#define IMAP_SIEVE_CONTEXT_REQUIRE(obj) \
MODULE_CONTEXT_REQUIRE(obj, imap_sieve_storage_module)
#define IMAP_SIEVE_MAIL_CONTEXT(obj) \
MODULE_CONTEXT(obj, imap_sieve_mail_module)
MODULE_CONTEXT_REQUIRE(obj, imap_sieve_mail_module)

struct imap_sieve_mailbox_rule;
struct imap_sieve_user;
Expand Down Expand Up @@ -289,7 +293,7 @@ static struct imap_sieve_mailbox_event *
imap_sieve_create_mailbox_event
(struct mailbox_transaction_context *t, struct mail *dest_mail)
{
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT(t);
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT_REQUIRE(t);
struct imap_sieve_mailbox_event *event;

if (!array_is_created(&ismt->events))
Expand All @@ -306,7 +310,7 @@ static void imap_sieve_add_mailbox_event
struct mail *dest_mail, struct mailbox *src_box,
const char *changed_flags)
{
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT(t);
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT_REQUIRE(t);
struct imap_sieve_mailbox_event *event;

i_assert(ismt->src_box == NULL || ismt->src_box == src_box);
Expand All @@ -320,7 +324,7 @@ static void imap_sieve_add_mailbox_copy_event
(struct mailbox_transaction_context *t,
struct mail *dest_mail, struct mail *src_mail)
{
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT(t);
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT_REQUIRE(t);
struct imap_sieve_mailbox_event *event;

i_assert(ismt->src_box == NULL || ismt->src_box == src_mail->box);
Expand Down Expand Up @@ -442,7 +446,7 @@ static void imap_sieve_mail_allocated(struct mail *_mail)
IMAP_SIEVE_CONTEXT(_mail->transaction);
struct mail_user *user = _mail->box->storage->user;
struct imap_sieve_user *isuser =
IMAP_SIEVE_USER_CONTEXT(user);
IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
struct mail_vfuncs *v = mail->vlast;
struct imap_sieve_mail *ismail;

Expand Down Expand Up @@ -471,7 +475,7 @@ imap_sieve_mailbox_copy(struct mail_save_context *ctx, struct mail *mail)
struct mail_storage *storage = t->box->storage;
struct mail_user *user = storage->user;
struct imap_sieve_user *isuser =
IMAP_SIEVE_USER_CONTEXT(user);
IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
union mailbox_module_context *lbox =
IMAP_SIEVE_CONTEXT(t->box);
struct imap_sieve_mailbox_transaction *ismt =
Expand Down Expand Up @@ -501,7 +505,7 @@ imap_sieve_mailbox_save_finish(struct mail_save_context *ctx)
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT(t);
union mailbox_module_context *lbox = IMAP_SIEVE_CONTEXT(box);
struct mail_user *user = box->storage->user;
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
struct mail *dest_mail = ctx->copying_via_save ? NULL : ctx->dest_mail;

if (lbox->super.save_finish(ctx) < 0)
Expand Down Expand Up @@ -609,7 +613,7 @@ imap_sieve_mailbox_transaction_run(
};
struct mailbox *src_box = ismt->src_box;
struct mail_user *user = dest_box->storage->user;
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
const struct imap_sieve_mailbox_event *mevent;
struct mailbox_header_lookup_ctx *headers_ctx;
struct mailbox_transaction_context *st;
Expand Down Expand Up @@ -791,7 +795,7 @@ imap_sieve_mailbox_transaction_commit(
struct mail_user *user = box->storage->user;
struct imap_sieve_mailbox_transaction *ismt = IMAP_SIEVE_CONTEXT(t);
union mailbox_module_context *lbox = IMAP_SIEVE_CONTEXT(t->box);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
int ret = 0;

if ((lbox->super.transaction_commit(t, changes_r)) < 0)
Expand Down Expand Up @@ -825,7 +829,7 @@ imap_sieve_mailbox_transaction_rollback(
static void imap_sieve_mailbox_allocated(struct mailbox *box)
{
struct mail_user *user = box->storage->user;
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
struct mailbox_vfuncs *v = box->vlast;
union mailbox_module_context *lbox;

Expand Down Expand Up @@ -882,7 +886,7 @@ static bool rule_pattern_has_wildcards(const char *pattern)
static void
imap_sieve_mailbox_rules_init(struct mail_user *user)
{
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
string_t *identifier;
unsigned int i = 0;
size_t prefix_len;
Expand Down Expand Up @@ -1032,7 +1036,7 @@ imap_sieve_mailbox_rules_match_patterns(struct mail_user *user,
const char *cause,
ARRAY_TYPE(imap_sieve_mailbox_rule) *rules)
{
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
struct imap_sieve_mailbox_rule *const *rule_idx;
struct mail_namespace *dst_ns, *src_ns;

Expand Down Expand Up @@ -1080,7 +1084,7 @@ imap_sieve_mailbox_rules_match(struct mail_user *user,
const char *cause,
ARRAY_TYPE(imap_sieve_mailbox_rule) *rules)
{
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);
struct imap_sieve_mailbox_rule lookup_rule;
struct imap_sieve_mailbox_rule *rule;

Expand Down Expand Up @@ -1144,7 +1148,7 @@ imap_sieve_mailbox_rules_get(struct mail_user *user,

static void imap_sieve_user_deinit(struct mail_user *user)
{
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(user);

if (isuser->isieve != NULL)
imap_sieve_deinit(&isuser->isieve);
Expand Down Expand Up @@ -1226,7 +1230,7 @@ static void imap_sieve_command_post(struct client_command_context *cmd)
void imap_sieve_storage_client_created(struct client *client,
bool user_script)
{
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT(client->user);
struct imap_sieve_user *isuser = IMAP_SIEVE_USER_CONTEXT_REQUIRE(client->user);

isuser->client = client;
isuser->user_script = user_script;
Expand Down

0 comments on commit b2de2ae

Please sign in to comment.