diff --git a/src/lib-sieve/cmd-redirect.c b/src/lib-sieve/cmd-redirect.c
index 57a1554af58af1c031af2064645bd5af6de4ef2f..28a798c9e055b539880ff4f4008d7993a34b6014 100644
--- a/src/lib-sieve/cmd-redirect.c
+++ b/src/lib-sieve/cmd-redirect.c
@@ -367,7 +367,7 @@ act_redirect_send(const struct sieve_action_exec_env *aenv, struct mail *mail,
 	input = i_stream_create_header_filter(
 		input, HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR,
 		hide_headers, N_ELEMENTS(hide_headers),
-		*null_header_filter_callback, (void *)NULL);
+		*null_header_filter_callback, NULL);
 
 	T_BEGIN {
 		string_t *hdr = t_str_new(256);
diff --git a/src/lib-sieve/cmp-i-octet.c b/src/lib-sieve/cmp-i-octet.c
index 450d494722d2774d724314a6bff612668581d707..3e84a48fa2376d96af8e7be94f14df9626c53cca 100644
--- a/src/lib-sieve/cmp-i-octet.c
+++ b/src/lib-sieve/cmp-i-octet.c
@@ -55,17 +55,17 @@ cmp_i_octet_compare(const struct sieve_comparator *cmp ATTR_UNUSED,
 	int result;
 
 	if (val1_size == val2_size)
-		return memcmp((void *) val1, (void *) val2, val1_size);
+		return memcmp(val1, val2, val1_size);
 
 	if (val1_size > val2_size) {
-		result = memcmp((void *) val1, (void *) val2, val2_size);
+		result = memcmp(val1, val2, val2_size);
 
 		if (result == 0)
 			return 1;
 		return result;
 	}
 
-	result = memcmp((void *) val1, (void *) val2, val1_size);
+	result = memcmp(val1, val2, val1_size);
 
 	if (result == 0)
 		return -1;
diff --git a/src/lib-sieve/ext-envelope.c b/src/lib-sieve/ext-envelope.c
index 9bb022ca3a2efae05c0fe127290433c6506c5885..9556da205293bd517b410fd6421f30cae8a0933b 100644
--- a/src/lib-sieve/ext-envelope.c
+++ b/src/lib-sieve/ext-envelope.c
@@ -597,7 +597,7 @@ tst_envelope_validate(struct sieve_validator *valdtr, struct sieve_command *tst)
 	 *   FIXME: verify dynamic envelope parts at runtime
 	 */
 	epart = arg;
-	if (sieve_ast_stringlist_map(&epart, (void *) &not_address,
+	if (sieve_ast_stringlist_map(&epart, &not_address,
 				     _envelope_part_is_supported) <= 0) {
 		i_assert(epart != NULL);
 		sieve_argument_validate_error(
diff --git a/src/lib-sieve/ext-reject.c b/src/lib-sieve/ext-reject.c
index 9ff7c758c3b92d1bcb5d89e352c86a1c067e25c5..1267d4ef2c99bf91e6f1146660405c28e3ac18ad 100644
--- a/src/lib-sieve/ext-reject.c
+++ b/src/lib-sieve/ext-reject.c
@@ -426,7 +426,7 @@ ext_reject_operation_execute(const struct sieve_runtime_env *renv,
 
 	if (sieve_result_add_action(renv, this_ext,
 				    (act->ereject ? "ereject" : "reject"),
-				    &act_reject, slist, (void *)act,
+				    &act_reject, slist, act,
 				    0, FALSE) < 0)
 		return SIEVE_EXEC_FAILURE;
 	return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/plugins/date/ext-date-common.c b/src/lib-sieve/plugins/date/ext-date-common.c
index f2c2d9c87bcc44fced30bfeaf57f58407f0210a7..40bbdbe3829d0e1a1088a0bc1703f3c83a74e5a0 100644
--- a/src/lib-sieve/plugins/date/ext-date-common.c
+++ b/src/lib-sieve/plugins/date/ext-date-common.c
@@ -52,7 +52,7 @@ ext_date_runtime_init(const struct sieve_extension *ext,
 	dctx->current_date = current_date;
 	dctx->zone_offset = zone_offset;
 
-	sieve_message_context_extension_set(renv->msgctx, ext, (void *)dctx);
+	sieve_message_context_extension_set(renv->msgctx, ext, dctx);
 	return SIEVE_EXEC_OK;
 }
 
diff --git a/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c b/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c
index 9138589d170a2ef2522fee215f610b34c36065e6..b7f081d539c490eda513bf7100ff48454052da7f 100644
--- a/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c
+++ b/src/lib-sieve/plugins/duplicate/ext-duplicate-common.c
@@ -49,7 +49,7 @@ bool ext_duplicate_load(const struct sieve_extension *ext, void **context)
 	config->default_period = default_period;
 	config->max_period = max_period;
 
-	*context = (void *) config;
+	*context = config;
 	return TRUE;
 }
 
@@ -209,7 +209,7 @@ int ext_duplicate_check(const struct sieve_runtime_env *renv, string_t *handle,
 		msg_pool = sieve_message_context_pool(renv->msgctx);
 		rctx = p_new(msg_pool, struct ext_duplicate_context, 1);
 		sieve_message_context_extension_set(renv->msgctx, this_ext,
-						    (void *)rctx);
+						    rctx);
 	} else if (array_is_created(&rctx->hashes)) {
 		struct ext_duplicate_hash *record;
 
@@ -270,7 +270,7 @@ int ext_duplicate_check(const struct sieve_runtime_env *renv, string_t *handle,
 	if (!duplicate || last) {
 		if (sieve_result_add_action(renv, NULL, NULL,
 					    &act_duplicate_mark,
-					    NULL, (void *) act, 0, FALSE) < 0)
+					    NULL, act, 0, FALSE) < 0)
 			return SIEVE_EXEC_FAILURE;
 	}
 
diff --git a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
index 4b8051c272abb9a09e6f6d7a58a2e4f519528bee..d262aca4d54d5c2ce377f20ec3c1456d8df08239 100644
--- a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
+++ b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c
@@ -156,7 +156,7 @@ cmd_deleteheader_get_context
 
 	ctx_data = p_new(sieve_command_pool(cmd),
 			 struct cmd_deleteheader_context_data, 1);
-	cmd->data = (void *)ctx_data;
+	cmd->data = ctx_data;
 
 	return ctx_data;
 }
diff --git a/src/lib-sieve/plugins/editheader/ext-editheader-common.c b/src/lib-sieve/plugins/editheader/ext-editheader-common.c
index 094ceac596e4b2b8aafb6f5bb4c93a9be318c194..6eb70d7000b019bafe7595b562ecc578ca321de3 100644
--- a/src/lib-sieve/plugins/editheader/ext-editheader-common.c
+++ b/src/lib-sieve/plugins/editheader/ext-editheader-common.c
@@ -139,7 +139,7 @@ bool ext_editheader_load(const struct sieve_extension *ext, void **context)
 		}
 	} T_END;
 
-	*context = (void *)ext_config;
+	*context = ext_config;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/enotify/cmd-notify.c b/src/lib-sieve/plugins/enotify/cmd-notify.c
index 4e0503389291c3685fa232546d8e6e3259048e44..28b5f76662e421d3b61e6c226b6165154d5251ba 100644
--- a/src/lib-sieve/plugins/enotify/cmd-notify.c
+++ b/src/lib-sieve/plugins/enotify/cmd-notify.c
@@ -504,7 +504,7 @@ cmd_notify_operation_execute(const struct sieve_runtime_env *renv,
 
 		if (sieve_result_add_action(renv, this_ext, "notify",
 					    &act_notify, slist,
-					    (void *)act, 0, FALSE) < 0)
+					    act, 0, FALSE) < 0)
 			return SIEVE_EXEC_FAILURE;
 
 		return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/plugins/enotify/ext-enotify-common.c b/src/lib-sieve/plugins/enotify/ext-enotify-common.c
index 7efb2bad82d190b244ac897ac1b54e187b288343..ab6c38dc4eff8b274a698a856bd4979e9d294294 100644
--- a/src/lib-sieve/plugins/enotify/ext-enotify-common.c
+++ b/src/lib-sieve/plugins/enotify/ext-enotify-common.c
@@ -469,7 +469,7 @@ bool ext_enotify_compile_check_arguments(struct sieve_validator *valdtr,
 
 		/* Parse and check options */
 		result = (sieve_ast_stringlist_map(
-			&option, (void *) &optn_context,
+			&option, &optn_context,
 			_ext_enotify_option_check) > 0);
 
 		/* Discard argument if options are not accepted by method */
diff --git a/src/lib-sieve/plugins/enotify/ext-enotify.c b/src/lib-sieve/plugins/enotify/ext-enotify.c
index 95751736a1a34620aed593ba3c61aa429ef37e6b..de0861bed3b226025f08c5824fc755d14ba30069 100644
--- a/src/lib-sieve/plugins/enotify/ext-enotify.c
+++ b/src/lib-sieve/plugins/enotify/ext-enotify.c
@@ -64,7 +64,7 @@ static bool ext_enotify_load(const struct sieve_extension *ext, void **context)
 
 	ectx = i_new(struct ext_enotify_context, 1);
 	ectx->var_ext = sieve_ext_variables_get_extension(ext->svinst);
-	*context = (void *)ectx;
+	*context = ectx;
 
 	ext_enotify_methods_init(ext->svinst, ectx);
 
diff --git a/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c b/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
index 0234db970fe28bc267f5d098ed228774a9ef4d6c..6636f6110222accd96d7ad5cb46a91ba296cd580 100644
--- a/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
+++ b/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
@@ -177,7 +177,7 @@ ntfy_mailto_load(const struct sieve_enotify_method *nmth, void **context)
 		svinst, config->pool, "sieve_notify_mailto_envelope_from",
 		&config->envelope_from);
 
-	*context = (void *)config;
+	*context = config;
 	return TRUE;
 }
 
@@ -360,7 +360,7 @@ ntfy_mailto_runtime_check_operands(const struct sieve_enotify_env *nenv,
 		return FALSE;
 
 	mtctx->uri = parsed_uri;
-	*method_context = (void *)mtctx;
+	*method_context = mtctx;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/environment/ext-environment-common.c b/src/lib-sieve/plugins/environment/ext-environment-common.c
index 4b344be90c067cc2e38733ebaa9d16035978da9d..c7f5f625a6a58c18c18471b71605791bd1061fa2 100644
--- a/src/lib-sieve/plugins/environment/ext-environment-common.c
+++ b/src/lib-sieve/plugins/environment/ext-environment-common.c
@@ -68,7 +68,7 @@ ext_environment_interpreter_context_create(
 
 	sieve_interpreter_extension_register(interp, this_ext,
 					     &environment_interpreter_extension,
-					     (void *)ctx);
+					     ctx);
 	return ctx;
 }
 
diff --git a/src/lib-sieve/plugins/ihave/ext-ihave-common.c b/src/lib-sieve/plugins/ihave/ext-ihave-common.c
index cb7a9e02d4384b116c51b5bd54aa5e6931e6deb5..3163d10b2933def958e6b72e2cb62e7bad8a5d19 100644
--- a/src/lib-sieve/plugins/ihave/ext-ihave-common.c
+++ b/src/lib-sieve/plugins/ihave/ext-ihave-common.c
@@ -29,7 +29,7 @@ ext_ihave_get_ast_context(const struct sieve_extension *this_ext,
 	actx = p_new(pool, struct ext_ihave_ast_context, 1);
 	p_array_init(&actx->missing_extensions, pool, 64);
 
-	sieve_ast_extension_set_context(ast, this_ext, (void *) actx);
+	sieve_ast_extension_set_context(ast, this_ext, actx);
 	return actx;
 }
 
diff --git a/src/lib-sieve/plugins/imap4flags/tag-flags.c b/src/lib-sieve/plugins/imap4flags/tag-flags.c
index 331063d539bdcb2add4e026a8b490498783f4f9c..0083aa2ac06ba0106be6e688d14109f6e0efbe0b 100644
--- a/src/lib-sieve/plugins/imap4flags/tag-flags.c
+++ b/src/lib-sieve/plugins/imap4flags/tag-flags.c
@@ -300,7 +300,7 @@ seff_flags_do_read_context(const struct sieve_side_effect *seffect,
 	if (ret < 0)
 		return flag_list->exec_status;
 
-	*se_context = (void *)ctx;
+	*se_context = ctx;
 	return SIEVE_EXEC_OK;
 }
 
diff --git a/src/lib-sieve/plugins/include/cmd-global.c b/src/lib-sieve/plugins/include/cmd-global.c
index c28d48e58d54afa1363fa36524e0f5a9d1c78fc6..ad8821e9114a9ea0a14d1a59d614ea7c5f64bd0f 100644
--- a/src/lib-sieve/plugins/include/cmd-global.c
+++ b/src/lib-sieve/plugins/include/cmd-global.c
@@ -69,7 +69,7 @@ _create_variable_argument(struct sieve_command *cmd,
 	struct sieve_argument *argument =
 		sieve_argument_create(cmd->ast_node->ast, NULL, cmd->ext, 0);
 
-	argument->data = (void *)var;
+	argument->data = var;
 	return argument;
 }
 
diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c
index 114a4f6256100682c275b0975ee3890116c62098..2a5416aa51175d01e83a8d4d63dc72ceec16897c 100644
--- a/src/lib-sieve/plugins/include/ext-include-common.c
+++ b/src/lib-sieve/plugins/include/ext-include-common.c
@@ -110,7 +110,7 @@ bool ext_include_load(const struct sieve_extension *ext, void **context)
 	/* Extension dependencies */
 	ctx->var_ext = sieve_ext_variables_get_extension(ext->svinst);
 
-	*context = (void *)ctx;
+	*context = ctx;
 	return TRUE;
 }
 
@@ -228,7 +228,7 @@ ext_include_create_ast_context(const struct sieve_extension *this_ext,
 	}
 
 	sieve_ast_extension_register(ast, this_ext, &include_ast_extension,
-				     (void *)actx);
+				     actx);
 	return actx;
 }
 
@@ -327,7 +327,7 @@ void ext_include_register_generator_context(
 			sieve_script_name(cgenv->script), cgenv->script);
 
 		sieve_generator_extension_set_context(
-			cgenv->gentr, this_ext, (void *)ctx);
+			cgenv->gentr, this_ext, ctx);
 	}
 
 	/* Initialize ast context if necessary */
@@ -445,7 +445,7 @@ void ext_include_interpreter_context_init(
 
 		sieve_interpreter_extension_register(
 			interp, this_ext, &include_interpreter_extension,
-			(void *)ctx);
+			ctx);
 	}
 }
 
diff --git a/src/lib-sieve/plugins/include/ext-include-variables.c b/src/lib-sieve/plugins/include/ext-include-variables.c
index f10b7eaa51836326a4c831d484a1475e582da3c9..2f5903edeef39fa8d99c8b73cb84cbbc2625c5b2 100644
--- a/src/lib-sieve/plugins/include/ext-include-variables.c
+++ b/src/lib-sieve/plugins/include/ext-include-variables.c
@@ -230,7 +230,7 @@ vnspc_global_variables_validate(struct sieve_validator *valdtr,
 		return FALSE;
 	}
 
-	*var_data = (void *)var;
+	*var_data = var;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/index/tag-index.c b/src/lib-sieve/plugins/index/tag-index.c
index 2921804b9d2cea9a9bddac7b943fe651fab7c9b4..85b32cf83299a41f70c84fbd9af564310885301d 100644
--- a/src/lib-sieve/plugins/index/tag-index.c
+++ b/src/lib-sieve/plugins/index/tag-index.c
@@ -116,7 +116,7 @@ tag_index_validate(struct sieve_validator *valdtr ATTR_UNUSED,
 
 	if (tag->argument->data == NULL) {
 		data = p_new(sieve_command_pool(cmd), struct tag_index_data, 1);
-		tag->argument->data = (void *)data;
+		tag->argument->data = data;
 	} else {
 		data = (struct tag_index_data *)tag->argument->data;
 	}
@@ -156,7 +156,7 @@ tag_last_validate(struct sieve_validator *valdtr ATTR_UNUSED,
 	/* Set :last flag */
 	if (index_arg->argument->data == NULL) {
 		data = p_new(sieve_command_pool(cmd), struct tag_index_data, 1);
-		index_arg->argument->data = (void *)data;
+		index_arg->argument->data = data;
 	} else {
 		data = (struct tag_index_data *)index_arg->argument->data;
 	}
@@ -252,7 +252,7 @@ svmo_index_read_context(const struct sieve_message_override *svmo ATTR_UNUSED,
 	ctx->fieldno = fieldno;
 	ctx->last = (last == 0 ? FALSE : TRUE);
 
-	*ho_context = (void *)ctx;
+	*ho_context = ctx;
 	return SIEVE_EXEC_OK;
 }
 
diff --git a/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c b/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
index 0d96980fa3c55088ea224d267a774909e0c6b854..4225e3f1b102e917185188e535d38f2b7ee64ed9 100644
--- a/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
+++ b/src/lib-sieve/plugins/mailbox/tst-mailboxexists.c
@@ -114,7 +114,7 @@ tst_mailboxexists_validate(struct sieve_validator *valdtr,
 	valctx.tst = tst;
 
 	return (sieve_ast_stringlist_map(
-		&aarg, (void *)&valctx,
+		&aarg, &valctx,
 		tst_mailboxexists_mailbox_validate) >= 0);
 }
 
diff --git a/src/lib-sieve/plugins/metadata/tst-metadataexists.c b/src/lib-sieve/plugins/metadata/tst-metadataexists.c
index 2719d1962f987569599a71b157037b442743fb4d..6248336882c4d49555c07af3b182662c0b19c33c 100644
--- a/src/lib-sieve/plugins/metadata/tst-metadataexists.c
+++ b/src/lib-sieve/plugins/metadata/tst-metadataexists.c
@@ -182,7 +182,7 @@ tst_metadataexists_validate(struct sieve_validator *valdtr,
 	valctx.tst = tst;
 
 	return (sieve_ast_stringlist_map(
-		&aarg, (void *)&valctx,
+		&aarg, &valctx,
 		tst_metadataexists_annotation_validate) >= 0);
 }
 
diff --git a/src/lib-sieve/plugins/mime/cmd-extracttext.c b/src/lib-sieve/plugins/mime/cmd-extracttext.c
index 800738913e160d1be4dcfe741d00bbb085facb8f..8f3b4d436906d9e833cd674822639f7e52d4cc70 100644
--- a/src/lib-sieve/plugins/mime/cmd-extracttext.c
+++ b/src/lib-sieve/plugins/mime/cmd-extracttext.c
@@ -159,7 +159,7 @@ cmd_extracttext_validate(struct sieve_validator *valdtr,
 	/* Create command context */
 	sctx = p_new(pool, struct cmd_extracttext_context, 1);
 	p_array_init(&sctx->modifiers, pool, 4);
-	cmd->data = (void *) sctx;
+	cmd->data = sctx;
 
 	/* Validate modifiers */
 	if (!sieve_variables_modifiers_validate(valdtr, cmd, &sctx->modifiers))
diff --git a/src/lib-sieve/plugins/mime/cmd-foreverypart.c b/src/lib-sieve/plugins/mime/cmd-foreverypart.c
index f30a2d771245613cfa558101b1d2ac9c19a91a81..2e0206c0a6738f934c95c72f7a795361e67caf50 100644
--- a/src/lib-sieve/plugins/mime/cmd-foreverypart.c
+++ b/src/lib-sieve/plugins/mime/cmd-foreverypart.c
@@ -313,7 +313,7 @@ static int cmd_foreverypart_begin_operation_execute
 	}
 	fploop->part = sieve_message_part_iter_current(&fploop->part_iter);
 	if (fploop->part != NULL) {
-		sieve_interpreter_loop_set_context(loop, (void *)fploop);
+		sieve_interpreter_loop_set_context(loop, fploop);
 	} else {
 		/* No children parts to iterate */
 		sieve_runtime_trace(renv, SIEVE_TRLVL_COMMANDS,
diff --git a/src/lib-sieve/plugins/mime/ext-extracttext.c b/src/lib-sieve/plugins/mime/ext-extracttext.c
index 86d8265232d3277c59b37e95029f58610d4a21d2..5e80ea3a5fca5b1208b9de9c04437d1092c92640 100644
--- a/src/lib-sieve/plugins/mime/ext-extracttext.c
+++ b/src/lib-sieve/plugins/mime/ext-extracttext.c
@@ -59,7 +59,7 @@ ext_extracttext_load(const struct sieve_extension *ext, void **context)
 	ectx->var_ext = sieve_ext_variables_get_extension(ext->svinst);
 	ectx->fep_ext = sieve_extension_register(
 		svinst, &foreverypart_extension, FALSE);
-	*context = (void *)ectx;
+	*context = ectx;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/mime/tag-mime.c b/src/lib-sieve/plugins/mime/tag-mime.c
index ff646c54a7f00f607f43a60cfc4cc7d8b34dfdae..066e3a4bcc3253521db784c0965bf172482c5492 100644
--- a/src/lib-sieve/plugins/mime/tag-mime.c
+++ b/src/lib-sieve/plugins/mime/tag-mime.c
@@ -127,7 +127,7 @@ tag_mime_get_data(struct sieve_command *cmd, struct sieve_ast_argument *tag)
 
 	if (tag->argument->data == NULL) {
 		data = p_new(sieve_command_pool(cmd), struct tag_mime_data, 1);
-		tag->argument->data = (void *)data;
+		tag->argument->data = data;
 	} else {
 		data = (struct tag_mime_data *)tag->argument->data;
 	}
@@ -613,7 +613,7 @@ svmo_mime_read_context(const struct sieve_message_override *svmo ATTR_UNUSED,
 		return param_list->exec_status;
 	}
 
-	*ho_context = (void *) ctx;
+	*ho_context = ctx;
 	return SIEVE_EXEC_OK;
 }
 
diff --git a/src/lib-sieve/plugins/regex/mcht-regex.c b/src/lib-sieve/plugins/regex/mcht-regex.c
index 2079bc5af59ffb4c8c1323e418e534a42696ed34..0a96a68aaeb39d8ad0579404b369c86fb6f29dac 100644
--- a/src/lib-sieve/plugins/regex/mcht-regex.c
+++ b/src/lib-sieve/plugins/regex/mcht-regex.c
@@ -162,7 +162,7 @@ mcht_regex_validate_context(struct sieve_validator *valdtr,
 	keyctx.cflags = cflags;
 
 	kitem = key_arg;
-	if (sieve_ast_stringlist_map(&kitem, (void *) &keyctx,
+	if (sieve_ast_stringlist_map(&kitem, &keyctx,
 				     mcht_regex_validate_key_argument) <= 0)
 		return FALSE;
 
@@ -204,7 +204,7 @@ static void mcht_regex_match_init(struct sieve_match_context *mctx)
 	}
 
 	/* Assign context */
-	mctx->data = (void *) ctx;
+	mctx->data = ctx;
 }
 
 static int
diff --git a/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c b/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
index 78ae3cc86c7356a45f42735041b2b080603325c9..cf6d1d8b06543598252aa6f8bd1aa43809874667 100644
--- a/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
+++ b/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
@@ -408,7 +408,7 @@ bool ext_spamvirustest_load(const struct sieve_extension *ext, void **context)
 	}
 
 	if (result) {
-		*context = (void *) ext_data;
+		*context = ext_data;
 	} else {
 		e_warning(svinst->event, "%s: "
 			  "extension not configured, "
@@ -503,7 +503,7 @@ int ext_spamvirustest_get_value(const struct sieve_runtime_env *renv,
 	if (mctx == NULL) {
 		/* Create new context */
 		mctx = p_new(pool, struct ext_spamvirustest_message_context, 1);
-		sieve_message_context_extension_set(msgctx, ext, (void *)mctx);
+		sieve_message_context_extension_set(msgctx, ext, mctx);
 	} else if (mctx->reload == ext_data->reload) {
 		/* Use cached result */
 		*value_r = ext_spamvirustest_get_score(ext, mctx->score_ratio,
diff --git a/src/lib-sieve/plugins/special-use/tag-specialuse.c b/src/lib-sieve/plugins/special-use/tag-specialuse.c
index 7a3850d73ddcb589da6c7520662f4c9c6c08c15b..3a9d2a8800d95bc89380bc3f44f1f4d82e800960 100644
--- a/src/lib-sieve/plugins/special-use/tag-specialuse.c
+++ b/src/lib-sieve/plugins/special-use/tag-specialuse.c
@@ -208,7 +208,7 @@ seff_specialuse_read_context(
 	ctx = p_new(pool, struct seff_specialuse_context, 1);
 	ctx->special_use_flag = p_strdup(pool, use_flag);
 
-	*se_context = (void *) ctx;
+	*se_context = ctx;
 
 	return SIEVE_EXEC_OK;
 }
diff --git a/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c b/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
index c0c572a0d5e801cbe8b4ad98267a62ed5f038ff8..f3fa890a7abcb27a8bdb6fc7ed35443fe522adfa 100644
--- a/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
+++ b/src/lib-sieve/plugins/special-use/tst-specialuse-exists.c
@@ -179,7 +179,7 @@ tst_specialuse_exists_validate(struct sieve_validator *valdtr,
 	valctx.tst = tst;
 
 	return (sieve_ast_stringlist_map(
-		&aarg, (void *)&valctx,
+		&aarg, &valctx,
 		tst_specialuse_exists_flag_validate) >= 0);
 }
 
diff --git a/src/lib-sieve/plugins/subaddress/ext-subaddress.c b/src/lib-sieve/plugins/subaddress/ext-subaddress.c
index 49072077756c8f999e79bbe7bd226f3ef5595d30..5e286d696f2e198e28438dc3542a099764f85298 100644
--- a/src/lib-sieve/plugins/subaddress/ext-subaddress.c
+++ b/src/lib-sieve/plugins/subaddress/ext-subaddress.c
@@ -80,7 +80,7 @@ ext_subaddress_load(const struct sieve_extension *ext, void **context)
 	config = i_new(struct ext_subaddress_config, 1);
 	config->delimiter = i_strdup(delim);
 
-	*context = (void *) config;
+	*context = config;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/vacation/cmd-vacation.c b/src/lib-sieve/plugins/vacation/cmd-vacation.c
index a02916dfcc335dd72af8257f4b6c4a203e164687..002c3fa920b21857f209f43161b64347e4df5e55 100644
--- a/src/lib-sieve/plugins/vacation/cmd-vacation.c
+++ b/src/lib-sieve/plugins/vacation/cmd-vacation.c
@@ -752,7 +752,7 @@ ext_vacation_operation_execute(const struct sieve_runtime_env *renv,
 	}
 
 	if (sieve_result_add_action(renv, this_ext, "vacation", &act_vacation,
-				    slist, (void *)act, 0, FALSE) < 0)
+				    slist, act, 0, FALSE) < 0)
 		return SIEVE_EXEC_FAILURE;
 
 	return SIEVE_EXEC_OK;
diff --git a/src/lib-sieve/plugins/vacation/ext-vacation-common.c b/src/lib-sieve/plugins/vacation/ext-vacation-common.c
index 13ca156eb4c834c937f476ea08e2082fa3fdff5c..b3de7ca52b957725c0bd9a5a7fb8a60ad24fa48e 100644
--- a/src/lib-sieve/plugins/vacation/ext-vacation-common.c
+++ b/src/lib-sieve/plugins/vacation/ext-vacation-common.c
@@ -80,7 +80,7 @@ bool ext_vacation_load(const struct sieve_extension *ext, void **context)
 	config->send_from_recipient = send_from_recipient;
 	config->to_header_ignore_envelope = to_header_ignore_envelope;
 
-	*context = (void *)config;
+	*context = config;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/variables/cmd-set.c b/src/lib-sieve/plugins/variables/cmd-set.c
index 2e7b9b41592601417d23ef6702090087a4ee1ad6..583c2f6ac23f268d15d91d180e894a1ed3726fa8 100644
--- a/src/lib-sieve/plugins/variables/cmd-set.c
+++ b/src/lib-sieve/plugins/variables/cmd-set.c
@@ -103,7 +103,7 @@ cmd_set_validate(struct sieve_validator *valdtr, struct sieve_command *cmd)
 	/* Create command context */
 	sctx = p_new(pool, struct cmd_set_context, 1);
 	p_array_init(&sctx->modifiers, pool, 4);
-	cmd->data = (void *) sctx;
+	cmd->data = sctx;
 
 	/* Validate modifiers */
 	if (!sieve_variables_modifiers_validate(valdtr, cmd, &sctx->modifiers))
diff --git a/src/lib-sieve/plugins/variables/ext-variables-arguments.c b/src/lib-sieve/plugins/variables/ext-variables-arguments.c
index 9cbc165934b8371a2d22826deed9832363b36bbf..6b12e93586d3aefe1cb43c94353c893c3974f962 100644
--- a/src/lib-sieve/plugins/variables/ext-variables-arguments.c
+++ b/src/lib-sieve/plugins/variables/ext-variables-arguments.c
@@ -59,7 +59,7 @@ ext_variables_variable_argument_activate(const struct sieve_extension *var_ext,
 
 	arg->argument = sieve_argument_create(ast, &variable_argument,
 					      this_ext, 0);
-	arg->argument->data = (void *) var;
+	arg->argument->data = var;
 	return TRUE;
 }
 
@@ -132,7 +132,7 @@ ext_variables_match_value_argument_activate(
 
 	arg->argument = sieve_argument_create(ast, &match_value_argument,
 					      this_ext, 0);
-	arg->argument->data = (void *)POINTER_CAST(index);
+	arg->argument->data = POINTER_CAST(index);
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/variables/ext-variables-common.c b/src/lib-sieve/plugins/variables/ext-variables-common.c
index 18142c2e753b8a6572dfac089a3c48e67f0a0888..f40540326ba166d28cc27e32d5cf463da0077aa8 100644
--- a/src/lib-sieve/plugins/variables/ext-variables-common.c
+++ b/src/lib-sieve/plugins/variables/ext-variables-common.c
@@ -95,7 +95,7 @@ bool ext_variables_load(const struct sieve_extension *ext, void **context)
 		}
 	}
 
-	*context = (void *)config;
+	*context = config;
 	return TRUE;
 }
 
@@ -687,7 +687,7 @@ ext_variables_create_local_scope(const struct sieve_extension *this_ext,
 	scope = sieve_variable_scope_create(this_ext->svinst, this_ext, NULL);
 
 	sieve_ast_extension_register(ast, this_ext, &variables_ast_extension,
-				     (void *)scope);
+				     scope);
 	return scope;
 }
 
@@ -719,7 +719,7 @@ ext_variables_validator_context_create(const struct sieve_extension *this_ext,
 	ctx->namespaces = sieve_validator_object_registry_create(valdtr);
 	ctx->local_scope = ext_variables_create_local_scope(this_ext, ast);
 
-	sieve_validator_extension_set_context(valdtr, this_ext, (void *)ctx);
+	sieve_validator_extension_set_context(valdtr, this_ext, ctx);
 	return ctx;
 }
 
@@ -873,7 +873,7 @@ ext_variables_interpreter_context_create(
 
 	sieve_interpreter_extension_register(interp, this_ext,
 					     &variables_interpreter_extension,
-					     (void *)ctx);
+					     ctx);
 	return ctx;
 }
 
diff --git a/src/lib-sieve/plugins/variables/ext-variables-namespaces.c b/src/lib-sieve/plugins/variables/ext-variables-namespaces.c
index 7375bd3e5f35b74fab3c011d67ef14a4c84311bc..70d0b9792f27cd6fda2be61e6461c2a1cb749cfa 100644
--- a/src/lib-sieve/plugins/variables/ext-variables-namespaces.c
+++ b/src/lib-sieve/plugins/variables/ext-variables-namespaces.c
@@ -116,7 +116,7 @@ bool ext_variables_namespace_argument_activate(
 
 	arg->argument = sieve_argument_create(ast, &namespace_argument,
 					      this_ext, 0);
-	arg->argument->data = (void *) var;
+	arg->argument->data = var;
 
 	return TRUE;
 }
diff --git a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
index e4b45160b74620c7f07cd6a2be81f73a54d19153..73b6a0d61b1c52ad363656746f7a7f5f55c2d8bd 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment-variables.c
@@ -93,7 +93,7 @@ vnspc_vnd_environment_validate(
 		return FALSE;
 	}
 
-	*var_data = (void *) p_strdup(sieve_ast_pool(ast), variable);
+	*var_data = p_strdup(sieve_ast_pool(ast), variable);
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c
index 774da5180950e9a8959645490da1fb15ac3b18e1..d4f7427073067576165e415e37598f63357ee9cb 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c
@@ -67,7 +67,7 @@ ext_vnd_environment_load(const struct sieve_extension *ext, void **context)
 	ectx = i_new(struct ext_vnd_environment_context, 1);
 	ectx->env_ext = sieve_ext_environment_require_extension(ext->svinst);
 	ectx->var_ext = sieve_ext_variables_get_extension(ext->svinst);
-	*context = (void *)ectx;
+	*context = ectx;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c b/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
index 109d1b36da73746a0d4779d4591a50145fa64e7b..7c376dde15464b5a20e94cde9219acbf12b0bc29 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/report/cmd-report.c
@@ -381,7 +381,7 @@ cmd_report_operation_execute(const struct sieve_runtime_env *renv,
 	act->to_address = smtp_address_clone(pool, parsed_address);
 
 	if (sieve_result_add_action(renv, this_ext, "report", &act_report, NULL,
-				    (void *)act, 0, TRUE) < 0)
+				    act, 0, TRUE) < 0)
 		return SIEVE_EXEC_FAILURE;
 	return SIEVE_EXEC_OK;
 }
diff --git a/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c b/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c
index b79c5a980bb6402cd29314b2794c024f30de92c4..0429e6c6608aa93ac5feceb950a5031bf5cbcc90 100644
--- a/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c
+++ b/src/lib-sieve/plugins/vnd.dovecot/report/ext-vnd-report-common.c
@@ -21,7 +21,7 @@ bool ext_report_load(const struct sieve_extension *ext, void **context)
 		svinst, svinst->pool, "sieve_report_from",
 		&config->report_from);
 
-	*context = (void *) config;
+	*context = config;
 	return TRUE;
 }
 
diff --git a/src/lib-sieve/sieve-actions.c b/src/lib-sieve/sieve-actions.c
index 55f0989ce805ddf2f5441981b90f629a5ec05efe..65a619298e8f509e51c9242359aaf81beaa6c744 100644
--- a/src/lib-sieve/sieve-actions.c
+++ b/src/lib-sieve/sieve-actions.c
@@ -263,7 +263,7 @@ int sieve_act_store_add_to_result(const struct sieve_runtime_env *renv,
 	act->mailbox = p_strdup(pool, mailbox);
 
 	return sieve_result_add_action(renv, NULL, name, &act_store, seffects,
-				       (void *)act, 0, TRUE);
+				       act, 0, TRUE);
 }
 
 void sieve_act_store_add_flags(const struct sieve_action_exec_env *aenv,
@@ -470,7 +470,7 @@ act_store_start(const struct sieve_action_exec_env *aenv, void **tr_context)
 		trans->error_code = MAIL_ERROR_NONE;
 	}
 
-	*tr_context = (void *)trans;
+	*tr_context = trans;
 
 	switch (trans->error_code) {
 	case MAIL_ERROR_NONE:
@@ -916,7 +916,7 @@ int sieve_act_redirect_add_to_result(const struct sieve_runtime_env *renv,
 	act->to_address = smtp_address_clone(pool, to_address);
 
 	if (sieve_result_add_action(renv, NULL, name, &act_redirect, seffects,
-				    (void *)act, svinst->max_redirects,
+				    act, svinst->max_redirects,
 				    TRUE) < 0)
 		return SIEVE_EXEC_FAILURE;
 
@@ -1029,7 +1029,7 @@ sieve_action_do_reject_mail(const struct sieve_action_exec_env *aenv,
 			input, HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR |
 			       HEADER_FILTER_HIDE_BODY,
 			exclude_headers, N_ELEMENTS(exclude_headers),
-			*null_header_filter_callback, (void *)NULL);
+			*null_header_filter_callback, NULL);
 		o_stream_nsend_istream(output, input);
 		i_stream_unref(&input);
 	}
diff --git a/src/lib-sieve/sieve-binary-code.c b/src/lib-sieve/sieve-binary-code.c
index 0d76ee0301cad918dc80d9ef837afd710a2fd1ac..60bcfa109008cb83a37bf28a2e233baadca6ffc0 100644
--- a/src/lib-sieve/sieve-binary-code.c
+++ b/src/lib-sieve/sieve-binary-code.c
@@ -162,7 +162,7 @@ sieve_size_t sieve_binary_emit_cstring(struct sieve_binary_block *sblock,
 				       const char *str)
 {
 	sieve_size_t address =
-		sieve_binary_emit_dynamic_data(sblock, (void *)str,
+		sieve_binary_emit_dynamic_data(sblock, str,
 					       (sieve_size_t)strlen(str));
 
 	_sieve_binary_emit_byte(sblock, 0);
@@ -173,7 +173,7 @@ sieve_size_t sieve_binary_emit_string(struct sieve_binary_block *sblock,
 				      const string_t *str)
 {
 	sieve_size_t address =
-		sieve_binary_emit_dynamic_data(sblock, (void *)str_data(str),
+		sieve_binary_emit_dynamic_data(sblock, str_data(str),
 					       (sieve_size_t)str_len(str));
 
 	_sieve_binary_emit_byte(sblock, 0);
diff --git a/src/lib-sieve/sieve-code.c b/src/lib-sieve/sieve-code.c
index 63fd7108d30559abcc9586368bda758c4744aeca..108b38c5838a6fee81796d961310041f789596ce 100644
--- a/src/lib-sieve/sieve-code.c
+++ b/src/lib-sieve/sieve-code.c
@@ -692,7 +692,7 @@ sieve_opr_stringlist_emit_start(struct sieve_binary_block *sblock,
 
 	/* Give the interpreter an easy way to skip over this string list */
 	*end_offset = sieve_binary_emit_offset(sblock, 0);
-	*context = (void *)end_offset;
+	*context = end_offset;
 
 	/* Emit the length of the list */
 	(void)sieve_binary_emit_unsigned(sblock, listlen);
diff --git a/src/lib-sieve/sieve-commands.c b/src/lib-sieve/sieve-commands.c
index 454b1f618eaf476f6c00c61daef1d5ad18774604..f8f9c8a4adb05175495adf7b69f8aa46acd18be1 100644
--- a/src/lib-sieve/sieve-commands.c
+++ b/src/lib-sieve/sieve-commands.c
@@ -164,7 +164,7 @@ sieve_arg_catenated_string_create(struct sieve_ast_argument *orig_arg)
 
 	catstr = p_new(pool, struct sieve_arg_catenated_string, 1);
 	catstr->str_parts = arglist;
-	(orig_arg)->argument->data = (void *)catstr;
+	(orig_arg)->argument->data = catstr;
 
 	return catstr;
 }
@@ -407,6 +407,6 @@ _verify_header_name_item(void *context, struct sieve_ast_argument *header)
 bool sieve_command_verify_headers_argument(struct sieve_validator *valdtr,
 					   struct sieve_ast_argument *headers)
 {
-	return (sieve_ast_stringlist_map(&headers, (void *)valdtr,
+	return (sieve_ast_stringlist_map(&headers, valdtr,
 					 _verify_header_name_item) >= 0);
 }
diff --git a/src/lib-sieve/sieve-match-types.c b/src/lib-sieve/sieve-match-types.c
index ecdb4a6197770968e31257750ad380330b800598..200a7e91f7a9dc15b6f11b567d9b3597bf7ef8c0 100644
--- a/src/lib-sieve/sieve-match-types.c
+++ b/src/lib-sieve/sieve-match-types.c
@@ -171,7 +171,7 @@ get_interpreter_context(struct sieve_interpreter *interp, bool create)
 
 		sieve_interpreter_extension_register(
 			interp, mcht_ext, &mtch_interpreter_extension,
-			(void *)ctx);
+			ctx);
 	}
 	return ctx;
 }
diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c
index 995a7cf672d31e4c113be33a89c54d701e8dfcf7..672cf079c174efbe6fc53e97f9c315bd96cc6851 100644
--- a/src/lib-sieve/sieve-message.c
+++ b/src/lib-sieve/sieve-message.c
@@ -1212,7 +1212,7 @@ sieve_message_parts_add_missing(const struct sieve_runtime_env *renv,
 				}
 
 				/* new part */
-				block.part->context = (void *)body_part;
+				block.part->context = body_part;
 
 				if (last_part != NULL) {
 					i_assert(parent != NULL);
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index 99c3a45cdb411ba2300040b0fa59f29b49c2212f..a9f7f05af15bb041af1626dbb2055b0a4085fc97 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -112,7 +112,7 @@ static int ldap_get_errno(struct ldap_connection *conn)
 	struct sieve_storage *storage = &conn->lstorage->storage;
 	int ret, err;
 
-	ret = ldap_get_option(conn->ld, LDAP_OPT_ERROR_NUMBER, (void *) &err);
+	ret = ldap_get_option(conn->ld, LDAP_OPT_ERROR_NUMBER, &err);
 	if (ret != LDAP_SUCCESS) {
 		e_error(storage->event, "db: "
 			"Can't get error number: %s",
@@ -130,7 +130,7 @@ const char *ldap_get_error(struct ldap_connection *conn)
 
 	ret = ldap_err2string(ldap_get_errno(conn));
 
-	ldap_get_option(conn->ld, LDAP_OPT_ERROR_STRING, (void *)&str);
+	ldap_get_option(conn->ld, LDAP_OPT_ERROR_STRING, &str);
 	if (str != NULL) {
 		ret = t_strconcat(ret, ", ", str, NULL);
 		ldap_memfree(str);
@@ -655,7 +655,7 @@ static int db_ldap_get_fd(struct ldap_connection *conn)
 	int ret;
 
 	/* Get the connection's fd */
-	ret = ldap_get_option(conn->ld, LDAP_OPT_DESC, (void *)&conn->fd);
+	ret = ldap_get_option(conn->ld, LDAP_OPT_DESC, &conn->fd);
 	if (ret != LDAP_SUCCESS) {
 		e_error(storage->event, "db: Can't get connection fd: %s",
 			ldap_err2string(ret));
diff --git a/src/lib-sieve/util/mail-raw.c b/src/lib-sieve/util/mail-raw.c
index 616d56a0652ee69f4af12258d257fcffd1602ddf..a2dbc9f6f5125a8cdff80d5511d060997762498f 100644
--- a/src/lib-sieve/util/mail-raw.c
+++ b/src/lib-sieve/util/mail-raw.c
@@ -126,7 +126,7 @@ mail_raw_create_stream(struct mail_user *ruser, int fd, time_t *mtime_r,
 
 	input_list[0] = input2; input_list[1] = NULL;
 	input = i_stream_create_seekable(input_list, MAIL_MAX_MEMORY_BUFFER,
-					 seekable_fd_callback, (void *)ruser);
+					 seekable_fd_callback, ruser);
 	i_stream_unref(&input2);
 	return input;
 }
diff --git a/src/lib-sieve/util/test-edit-mail.c b/src/lib-sieve/util/test-edit-mail.c
index 285e638a5987526521e1721f426d59f6252fa060..ac920ab4abe57d494b89957bf2c52f8a90f88b99 100644
--- a/src/lib-sieve/util/test-edit-mail.c
+++ b/src/lib-sieve/util/test-edit-mail.c
@@ -280,7 +280,7 @@ static void test_edit_mail_concatenated(void)
 	input_filt = i_stream_create_header_filter(
 		input_mail, (HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR),
 		hide_headers, N_ELEMENTS(hide_headers),
-		*null_header_filter_callback, (void *)NULL);
+		*null_header_filter_callback, NULL);
 	input = i_stream_create_lf(input_filt);
 	i_stream_unref(&input_filt);
 
@@ -307,7 +307,7 @@ static void test_edit_mail_concatenated(void)
 	input_filt = i_stream_create_header_filter(
 		input_mail, (HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR),
 		hide_headers, N_ELEMENTS(hide_headers),
-		*null_header_filter_callback, (void *)NULL);
+		*null_header_filter_callback, NULL);
 	input = i_stream_create_lf(input_filt);
 	i_stream_unref(&input_filt);
 
@@ -384,7 +384,7 @@ static void test_edit_mail_concatenated(void)
 	input_filt = i_stream_create_header_filter(
 		input_mail, (HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR),
 		hide_headers, N_ELEMENTS(hide_headers),
-		*null_header_filter_callback, (void *)NULL);
+		*null_header_filter_callback, NULL);
 	input = i_stream_create_lf(input_filt);
 	i_stream_unref(&input_filt);
 
@@ -410,7 +410,7 @@ static void test_edit_mail_concatenated(void)
 	input_filt = i_stream_create_header_filter(input_mail,
 		HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR, hide_headers,
 		N_ELEMENTS(hide_headers), *null_header_filter_callback,
-		(void *)NULL);
+		NULL);
 	input = i_stream_create_lf(input_filt);
 	i_stream_unref(&input_filt);
 
diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c
index 2c07afea6624fab5c24336ad4b9d54b53718fd1f..da18f690fb020252a2e995a3dd4628b9180b2f00 100644
--- a/src/managesieve/managesieve-client.c
+++ b/src/managesieve/managesieve-client.c
@@ -126,7 +126,7 @@ int client_create(int fd_in, int fd_out, const char *session_id,
 	svenv.flags = SIEVE_FLAG_HOME_RELATIVE;
 
 	svinst = sieve_init(&svenv, &managesieve_sieve_callbacks,
-			    (void *) user, set->mail_debug);
+			    user, set->mail_debug);
 	if (svinst == NULL) {
 		*error_r = "Failed to initialize Sieve interpreter";
 		return -1;
diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c b/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c
index 6277d9f5f69199385c57d4880bd96da786554321..f9cec6b7e3844a8a202909f734e4072708428716 100644
--- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd.c
@@ -112,7 +112,7 @@ doveadm_sieve_cmd_run(struct doveadm_mail_cmd_context *_ctx,
 	svenv.base_dir = user->set->base_dir;
 	svenv.flags = SIEVE_FLAG_HOME_RELATIVE;
 
-	ctx->svinst = sieve_init(&svenv, &sieve_callbacks, (void *)ctx,
+	ctx->svinst = sieve_init(&svenv, &sieve_callbacks, ctx,
 				 user->set->mail_debug);
 	if (ctx->svinst == NULL)
 		return -1;
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index a6cb2e79dfe5e152306eebdf64b6eee7f9d22436..6454ec339105fddfcdae12f218b26712d24b8803 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -597,8 +597,7 @@ imap_filter_sieve_smtp_start(const struct sieve_script_env *senv,
 
 	i_zero(&submit_input);
 
-	return (void *)smtp_submit_init_simple(&submit_input, smtp_set,
-					       mail_from);
+	return smtp_submit_init_simple(&submit_input, smtp_set, mail_from);
 }
 
 static void
diff --git a/src/plugins/imapsieve/sieve-imapsieve-plugin.c b/src/plugins/imapsieve/sieve-imapsieve-plugin.c
index b4b73025bc6496f6fa797bc39f2a27bbca62913b..fe5111e9ba4b423e9485e99ede0cc377394c9b2f 100644
--- a/src/plugins/imapsieve/sieve-imapsieve-plugin.c
+++ b/src/plugins/imapsieve/sieve-imapsieve-plugin.c
@@ -33,7 +33,7 @@ void sieve_imapsieve_plugin_load(struct sieve_instance *svinst, void **context)
 		"Sieve imapsieve plugin for %s version %s loaded",
 		PIGEONHOLE_NAME, PIGEONHOLE_VERSION_FULL);
 
-	*context = (void *)pctx;
+	*context = pctx;
 }
 
 void sieve_imapsieve_plugin_unload(struct sieve_instance *svinst ATTR_UNUSED,
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index ef06cff831aec83968f70ab2c2efb22e3850b5b4..1b7c7df44515bbc28a7692f83e64ca12d754d82b 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -83,8 +83,8 @@ lda_sieve_smtp_start(const struct sieve_script_env *senv,
 
 	i_zero(&submit_input);
 
-	return (void *)smtp_submit_init_simple(&submit_input, dctx->smtp_set,
-					       mail_from);
+	return smtp_submit_init_simple(&submit_input, dctx->smtp_set,
+				       mail_from);
 }
 
 static void
@@ -1014,7 +1014,7 @@ lda_sieve_execute(struct lda_sieve_run_context *srctx,
 	scriptenv.duplicate_check = lda_sieve_duplicate_check;
 	scriptenv.reject_mail = lda_sieve_reject_mail;
 	scriptenv.result_amend_log_message = lda_sieve_result_amend_log_message;
-	scriptenv.script_context = (void *) mdctx;
+	scriptenv.script_context = mdctx;
 	scriptenv.trace_log = trace_log;
 	scriptenv.trace_config = trace_config;
 
diff --git a/src/plugins/sieve-extprograms/cmd-pipe.c b/src/plugins/sieve-extprograms/cmd-pipe.c
index 1c6ff90e2cc08104bd87975f6eb6a626a4a2d0ce..95f7eaf470db5283e70ce4ec60bd6ffce3c36dea 100644
--- a/src/plugins/sieve-extprograms/cmd-pipe.c
+++ b/src/plugins/sieve-extprograms/cmd-pipe.c
@@ -275,7 +275,7 @@ cmd_pipe_operation_execute(const struct sieve_runtime_env *renv,
 	act->try = try;
 
 	if (sieve_result_add_action(renv, this_ext, "pipe", &act_pipe, slist,
-				    (void *)act, 0, TRUE) < 0)
+				    act, 0, TRUE) < 0)
 		return SIEVE_EXEC_FAILURE;
 	return SIEVE_EXEC_OK;
 }
@@ -350,7 +350,7 @@ act_pipe_start(const struct sieve_action_exec_env *aenv, void **tr_context)
 
 	/* Create transaction context */
 	trans = p_new(pool, struct act_pipe_transaction, 1);
-	*tr_context = (void *)trans;
+	*tr_context = trans;
 
 	return SIEVE_EXEC_OK;
 }
diff --git a/src/plugins/sieve-extprograms/ext-execute.c b/src/plugins/sieve-extprograms/ext-execute.c
index 4d7770991d923d739433e5b9c52313c620a32f4b..27e89466fe017edfa3319b250f0310b779b95d61 100644
--- a/src/plugins/sieve-extprograms/ext-execute.c
+++ b/src/plugins/sieve-extprograms/ext-execute.c
@@ -53,7 +53,7 @@ static bool ext_execute_load(const struct sieve_extension *ext, void **context)
 		*context = NULL;
 	}
 
-	*context = (void *)sieve_extprograms_config_init(ext);
+	*context = sieve_extprograms_config_init(ext);
 	return TRUE;
 }
 
diff --git a/src/plugins/sieve-extprograms/ext-filter.c b/src/plugins/sieve-extprograms/ext-filter.c
index 1a9efbbf697ee886580fd9f6e4b7776c84295e2b..183d200d9dc6d6bd3bc08cba958bd94852d3b5e3 100644
--- a/src/plugins/sieve-extprograms/ext-filter.c
+++ b/src/plugins/sieve-extprograms/ext-filter.c
@@ -53,7 +53,7 @@ static bool ext_filter_load(const struct sieve_extension *ext, void **context)
 		*context = NULL;
 	}
 
-	*context = (void *)sieve_extprograms_config_init(ext);
+	*context = sieve_extprograms_config_init(ext);
 	return TRUE;
 }
 
diff --git a/src/plugins/sieve-extprograms/ext-pipe.c b/src/plugins/sieve-extprograms/ext-pipe.c
index db41bdb5f0dbe34a094b66d6fd53cfd6b64f198e..1473e738ca23eb3190751c070bca1337083eeee8 100644
--- a/src/plugins/sieve-extprograms/ext-pipe.c
+++ b/src/plugins/sieve-extprograms/ext-pipe.c
@@ -53,7 +53,7 @@ static bool ext_pipe_load(const struct sieve_extension *ext, void **context)
 		*context = NULL;
 	}
 
-	*context = (void *)sieve_extprograms_config_init(ext);
+	*context = sieve_extprograms_config_init(ext);
 	return TRUE;
 }
 
diff --git a/src/plugins/sieve-extprograms/sieve-extprograms-common.c b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
index 352090d2eed892f6930f544208a30605c013f806..daa2361b5e3aa952e8a581152df22b5ce6683a54 100644
--- a/src/plugins/sieve-extprograms/sieve-extprograms-common.c
+++ b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
@@ -302,7 +302,7 @@ bool sieve_extprogram_command_validate(struct sieve_validator *valdtr,
 	actx.valdtr = valdtr;
 	actx.cmd = cmd;
 	stritem = arg;
-	if (sieve_ast_stringlist_map(&stritem, (void *)&actx,
+	if (sieve_ast_stringlist_map(&stritem, &actx,
 				     _arg_validate) <= 0)
 		return FALSE;
 
diff --git a/src/plugins/sieve-extprograms/sieve-extprograms-plugin.c b/src/plugins/sieve-extprograms/sieve-extprograms-plugin.c
index db881ea73986d7ac21daa8a430d791138677c2d7..65e5ca63ae34c5ec851ecc50fe2d588418045879 100644
--- a/src/plugins/sieve-extprograms/sieve-extprograms-plugin.c
+++ b/src/plugins/sieve-extprograms/sieve-extprograms-plugin.c
@@ -38,7 +38,7 @@ void sieve_extprograms_plugin_load(struct sieve_instance *svinst,
 			PIGEONHOLE_NAME, PIGEONHOLE_VERSION_FULL);
 	}
 
-	*context = (void *)pctx;
+	*context = pctx;
 }
 
 void sieve_extprograms_plugin_unload(struct sieve_instance *svinst ATTR_UNUSED,
diff --git a/src/sieve-tools/sieve-test.c b/src/sieve-tools/sieve-test.c
index 1deb5f19881a8259baa6c36591dae7452c8e7c0f..023b7acdee97bf8406f47c28dd7c62b6ce863930 100644
--- a/src/sieve-tools/sieve-test.c
+++ b/src/sieve-tools/sieve-test.c
@@ -64,7 +64,7 @@ sieve_smtp_start(const struct sieve_script_env *senv ATTR_UNUSED,
 
 	output = o_stream_create_fd(STDOUT_FILENO, (size_t)-1);
 	o_stream_set_no_error_handling(output, TRUE);
-	return (void *)output;
+	return output;
 }
 
 static void
diff --git a/src/testsuite/testsuite-objects.c b/src/testsuite/testsuite-objects.c
index 3a264753aee8202111e1d3d77497e34ea18c318e..7c3dfdeda5217a7e595564d027342f4a2591878d 100644
--- a/src/testsuite/testsuite-objects.c
+++ b/src/testsuite/testsuite-objects.c
@@ -263,7 +263,7 @@ bool testsuite_object_argument_activate(struct sieve_validator *valdtr,
 
 	arg->argument = sieve_argument_create(
 		arg->ast, &testsuite_object_argument, testsuite_ext, 0);
-	arg->argument->data = (void *)ctx;
+	arg->argument->data = ctx;
 	return TRUE;
 }
 
diff --git a/src/testsuite/testsuite-smtp.c b/src/testsuite/testsuite-smtp.c
index 44e6ef6571b9b63901d49076385bbb0d7bae8a40..a7bae6a7094e7a3000350f2ce1e9260ebd77c202 100644
--- a/src/testsuite/testsuite-smtp.c
+++ b/src/testsuite/testsuite-smtp.c
@@ -99,7 +99,7 @@ void *testsuite_smtp_start(const struct sieve_script_env *senv ATTR_UNUSED,
 
 	smtp->output = o_stream_create_fd_autoclose(&fd, (size_t)-1);
 
-	return (void *) smtp;
+	return smtp;
 }
 
 void testsuite_smtp_add_rcpt(const struct sieve_script_env *senv ATTR_UNUSED,
diff --git a/src/testsuite/testsuite-substitutions.c b/src/testsuite/testsuite-substitutions.c
index 942d58ea23f0021fe2c186e2ac1bdef9b97b4339..86c71fc28a8b8f0dc09d86a2d86a767507bfc0ff 100644
--- a/src/testsuite/testsuite-substitutions.c
+++ b/src/testsuite/testsuite-substitutions.c
@@ -117,7 +117,7 @@ testsuite_substitution_argument_create(
 
 	arg->argument = sieve_argument_create
 		(ast, &testsuite_substitution_argument, testsuite_ext, 0);
-	arg->argument->data = (void *)tsctx;
+	arg->argument->data = tsctx;
 	return arg;
 }
 
diff --git a/src/testsuite/testsuite-variables.c b/src/testsuite/testsuite-variables.c
index 5082a188c316db54de6a7a2730e1d91a3cb8f6db..eb6ed6a14b51e6125c6a59839fbe15a634c12e80 100644
--- a/src/testsuite/testsuite-variables.c
+++ b/src/testsuite/testsuite-variables.c
@@ -93,7 +93,7 @@ bool testsuite_varnamespace_validate(
 		return FALSE;
 	}
 
-	*var_data = (void *)p_strdup(sieve_ast_pool(ast), variable);
+	*var_data = p_strdup(sieve_ast_pool(ast), variable);
 	return TRUE;
 }