dovecot-2.2-pigeonhole: doveadm sieve plugin: Fixed crashes caus...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Tue Oct 20 11:57:53 UTC 2015


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/d64153bf5352
changeset: 2118:d64153bf5352
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Tue Oct 20 13:57:48 2015 +0200
description:
doveadm sieve plugin: Fixed crashes caused by incorrect context allocation in the command implementations.
The base context struct was allocated, rather than the (larger) command-specific context.
Patch by Timo Sirainen.

diffstat:

 src/plugins/doveadm-sieve/doveadm-sieve-cmd-activate.c |  10 +++++-----
 src/plugins/doveadm-sieve/doveadm-sieve-cmd-get.c      |  11 ++++++-----
 src/plugins/doveadm-sieve/doveadm-sieve-cmd-put.c      |  14 +++++++-------
 src/plugins/doveadm-sieve/doveadm-sieve-cmd-rename.c   |  10 +++++-----
 4 files changed, 23 insertions(+), 22 deletions(-)

diffs (97 lines):

diff -r 2dc6dda47ae7 -r d64153bf5352 src/plugins/doveadm-sieve/doveadm-sieve-cmd-activate.c
--- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd-activate.c	Sun Oct 04 23:18:29 2015 +0200
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd-activate.c	Tue Oct 20 13:57:48 2015 +0200
@@ -107,12 +107,12 @@
 static struct doveadm_mail_cmd_context *
 cmd_sieve_activate_alloc(void)
 {
-	struct doveadm_sieve_cmd_context *ctx;
+	struct doveadm_sieve_activate_cmd_context *ctx;
 
-	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_cmd_context);
-	ctx->ctx.v.init = cmd_sieve_activate_init;
-	ctx->v.run = cmd_sieve_activate_run;
-	return &ctx->ctx;
+	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_activate_cmd_context);
+	ctx->ctx.ctx.v.init = cmd_sieve_activate_init;
+	ctx->ctx.v.run = cmd_sieve_activate_run;
+	return &ctx->ctx.ctx;
 }
 
 static struct doveadm_mail_cmd_context *
diff -r 2dc6dda47ae7 -r d64153bf5352 src/plugins/doveadm-sieve/doveadm-sieve-cmd-get.c
--- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd-get.c	Sun Oct 04 23:18:29 2015 +0200
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd-get.c	Tue Oct 20 13:57:48 2015 +0200
@@ -26,6 +26,7 @@
 	struct istream *input;
 	enum sieve_error error;
 
+	return 0;
 	script = sieve_storage_open_script
 		(_ctx->storage, ctx->scriptname, &error);
 	if ( script == NULL || sieve_script_get_stream
@@ -60,13 +61,13 @@
 static struct doveadm_mail_cmd_context *
 cmd_sieve_get_alloc(void)
 {
-	struct doveadm_sieve_cmd_context *ctx;
+	struct doveadm_sieve_get_cmd_context *ctx;
 
-	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_cmd_context);
-	ctx->ctx.v.init = cmd_sieve_get_init;
-	ctx->v.run = cmd_sieve_get_run;
+	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_get_cmd_context);
+	ctx->ctx.ctx.v.init = cmd_sieve_get_init;
+	ctx->ctx.v.run = cmd_sieve_get_run;
 	doveadm_print_init("pager");
-	return &ctx->ctx;
+	return &ctx->ctx.ctx;
 }
 
 struct doveadm_mail_cmd doveadm_sieve_cmd_get = {
diff -r 2dc6dda47ae7 -r d64153bf5352 src/plugins/doveadm-sieve/doveadm-sieve-cmd-put.c
--- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd-put.c	Sun Oct 04 23:18:29 2015 +0200
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd-put.c	Tue Oct 20 13:57:48 2015 +0200
@@ -164,14 +164,14 @@
 static struct doveadm_mail_cmd_context *
 cmd_sieve_put_alloc(void)
 {
-	struct doveadm_sieve_cmd_context *ctx;
+	struct doveadm_sieve_put_cmd_context *ctx;
 
-	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_cmd_context);
-	ctx->ctx.getopt_args = "a";
-	ctx->ctx.v.parse_arg = cmd_sieve_put_parse_arg;
-	ctx->ctx.v.init = cmd_sieve_put_init;
-	ctx->v.run = cmd_sieve_put_run;
-	return &ctx->ctx;
+	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_put_cmd_context);
+	ctx->ctx.ctx.getopt_args = "a";
+	ctx->ctx.ctx.v.parse_arg = cmd_sieve_put_parse_arg;
+	ctx->ctx.ctx.v.init = cmd_sieve_put_init;
+	ctx->ctx.v.run = cmd_sieve_put_run;
+	return &ctx->ctx.ctx;
 }
 
 struct doveadm_mail_cmd doveadm_sieve_cmd_put = {
diff -r 2dc6dda47ae7 -r d64153bf5352 src/plugins/doveadm-sieve/doveadm-sieve-cmd-rename.c
--- a/src/plugins/doveadm-sieve/doveadm-sieve-cmd-rename.c	Sun Oct 04 23:18:29 2015 +0200
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-cmd-rename.c	Tue Oct 20 13:57:48 2015 +0200
@@ -63,12 +63,12 @@
 static struct doveadm_mail_cmd_context *
 cmd_sieve_rename_alloc(void)
 {
-	struct doveadm_sieve_cmd_context *ctx;
+	struct doveadm_sieve_rename_cmd_context *ctx;
 
-	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_cmd_context);
-	ctx->ctx.v.init = cmd_sieve_rename_init;
-	ctx->v.run = cmd_sieve_rename_run;
-	return &ctx->ctx;
+	ctx = doveadm_sieve_cmd_alloc(struct doveadm_sieve_rename_cmd_context);
+	ctx->ctx.ctx.v.init = cmd_sieve_rename_init;
+	ctx->ctx.v.run = cmd_sieve_rename_run;
+	return &ctx->ctx.ctx;
 }
 
 struct doveadm_mail_cmd doveadm_sieve_cmd_rename = {


More information about the dovecot-cvs mailing list