diff --git a/src/managesieve/cmd-putscript.c b/src/managesieve/cmd-putscript.c index 8eb25f306612efabd41efad1a20d9821a07eab03..1b2998ec6f580319b43f74c87c9b35d68e3e3b1e 100644 --- a/src/managesieve/cmd-putscript.c +++ b/src/managesieve/cmd-putscript.c @@ -311,7 +311,6 @@ static bool cmd_putscript_continue_parsing(struct client_command_context *cmd) return cmd_putscript_cancel(ctx, TRUE); } - ctx->max_script_size = ctx->script_size; } else { ctx->max_script_size = managesieve_quota_max_script_size(client); } @@ -343,7 +342,8 @@ static bool cmd_putscript_continue_script(struct client_command_context *cmd) if (ctx->save_ctx != NULL) { while (ctx->script_size == 0 || ctx->input->v_offset != ctx->script_size) { - if ( ctx->input->v_offset > ctx->max_script_size ) { + if ( ctx->max_script_size > 0 && + ctx->input->v_offset > ctx->max_script_size ) { (void)managesieve_quota_check_validsize(client, ctx->input->v_offset); cmd_putscript_finish(ctx); return TRUE;