diff --git a/src/lib-sieve/plugins/editheader/cmd-addheader.c b/src/lib-sieve/plugins/editheader/cmd-addheader.c index f6ec46aa8f22c6ea0f1e75c499b1b1c2bc8e8466..63ad91eb462350692e62fb9723bf61fd29add56c 100644 --- a/src/lib-sieve/plugins/editheader/cmd-addheader.c +++ b/src/lib-sieve/plugins/editheader/cmd-addheader.c @@ -238,6 +238,17 @@ static int cmd_addheader_operation_execute (renv, address, "value", &value)) <= 0 ) return ret; + /* + * Verify arguments + */ + + if ( !rfc2822_header_field_name_verify + (str_c(field_name), str_len(field_name)) ) { + sieve_runtime_error(renv, NULL, "specified field name `%s' is invalid", + str_sanitize(str_c(field_name), 80)); + return SIEVE_EXEC_FAILURE; + } + /* * Perform operation */ diff --git a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c index 7f4a687ea0d83b2db3bc1ebbe585540fe43b616e..36929b475c6a6ed53ad294723b88c87376dafe87 100644 --- a/src/lib-sieve/plugins/editheader/cmd-deleteheader.c +++ b/src/lib-sieve/plugins/editheader/cmd-deleteheader.c @@ -425,6 +425,17 @@ static int cmd_deleteheader_operation_execute (renv, &oprnd, address, "value-patterns", &vpattern_list)) <= 0 ) return ret; + /* + * Verify arguments + */ + + if ( !rfc2822_header_field_name_verify + (str_c(field_name), str_len(field_name)) ) { + sieve_runtime_error(renv, NULL, "specified field name `%s' is invalid", + str_sanitize(str_c(field_name), 80)); + return SIEVE_EXEC_FAILURE; + } + /* * Execute command */