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