Linus Rath
4f5e667a53
fix: keep filter scripts valid when a rule contains */ or a bad header name
...
The rule metadata is JSON inside a Sieve bracket comment, so a `*/` in a
rule name, a value or the vacation text ended the comment early and
broke the script. A line break in a rule name escaped the `# Rule:`
comment line. And a header name outside `[A-Za-z0-9_-]` made Stalwart
(0.16 and 1.0) refuse the whole script, every other rule with it.
- `*/` in the metadata JSON is written as `*\/`, which `JSON.parse`
reads back as `/`, so older versions still parse it.
- Line breaks in a rule name are flattened on the `# Rule:` line, and
the parser matches its own blocks the same way.
- The rule editor refuses to save an invalid header name, with a
translated message. The generator skips such a rule (it stays in the
metadata, so it can be fixed) instead of writing a script the server
refuses.
2026-09-25 19:29:30 +02:00
..
2026-09-25 19:27:24 +02:00
2026-09-24 21:15:22 +02:00
2026-09-23 18:31:27 +02:00
2026-09-20 19:59:37 +02:00
2026-09-25 18:06:49 +02:00
2026-09-25 18:35:47 +02:00
2026-05-21 23:35:58 +02:00
2026-09-25 19:27:24 +02:00
2026-09-24 18:23:11 +02:00
2026-09-25 19:24:30 +02:00
2026-08-06 16:47:20 +02:00
2026-09-17 20:01:35 +02:00
2026-05-21 23:35:58 +02:00
2026-09-25 19:29:30 +02:00
2026-09-22 20:28:01 +02:00
2026-08-25 20:50:35 +02:00
2026-08-29 12:46:39 +02:00
2026-08-25 19:16:20 +02:00
2026-09-25 18:30:08 +02:00
2026-09-25 17:35:56 +02:00
2026-09-10 10:14:25 +02:00
2026-09-10 10:45:45 +02:00
2026-06-19 12:31:07 +02:00
2026-09-19 00:53:53 +02:00
2026-09-19 13:01:07 +02:00
2026-07-07 23:26:36 +02:00
2026-08-16 21:18:57 +02:00
2026-09-03 22:12:15 -07:00
2026-08-29 11:03:48 +02:00
2026-04-21 17:42:52 +02:00
2026-04-16 16:54:09 +02:00
2026-09-07 16:48:26 +08:00
2026-09-09 18:27:01 +02:00
2026-09-09 16:38:55 +02:00
2026-08-25 18:50:50 +02:00
2026-02-17 01:09:57 +01:00
2026-09-25 17:35:56 +02:00
2026-09-25 17:35:56 +02:00
2026-09-25 17:35:56 +02:00
2026-04-12 01:10:28 +02:00
2026-09-01 20:55:13 +02:00
2026-09-01 20:55:13 +02:00
2026-09-17 21:42:16 +02:00
2026-09-21 20:52:02 +02:00
2026-08-31 20:41:45 +02:00
2026-09-19 13:32:41 +02:00
2026-08-25 19:36:04 +02:00
2026-09-23 19:41:44 +02:00
2026-07-21 23:03:34 +02:00
2026-09-17 21:08:37 +02:00
2026-09-25 19:24:30 +02:00
2026-05-06 20:07:36 +02:00
2026-05-22 15:22:33 +02:00
2026-08-20 16:49:31 +02:00
2026-09-25 18:37:41 +02:00
2026-09-25 18:37:41 +02:00
2026-09-17 21:08:37 +02:00
2026-08-20 14:21:41 +02:00
2026-07-29 11:41:34 +12:00
2026-06-15 23:15:04 +02:00
2026-09-24 21:15:22 +02:00
2026-05-18 16:01:29 +02:00
2026-07-08 15:42:42 +02:00
2026-07-21 23:26:51 +02:00
2026-08-06 18:44:14 +02:00
2026-07-29 17:18:38 +02:00
2026-09-25 19:24:30 +02:00
2026-09-23 18:09:35 +02:00
2026-09-21 23:45:08 +02:00
2026-09-18 22:16:57 +02:00
2026-09-19 00:53:53 +02:00
2026-09-17 23:54:33 +02:00
2026-09-19 00:53:53 +02:00
2026-02-16 18:51:30 +01:00
2026-06-24 19:32:13 +02:00
2026-09-17 20:55:39 +02:00
2026-09-25 18:37:41 +02:00
2026-09-25 19:27:24 +02:00
2026-07-04 14:52:26 +02:00
2026-08-29 18:11:50 +02:00
2026-08-31 09:55:06 +02:00
2026-05-30 15:56:55 +02:00
2026-08-31 09:55:06 +02:00
2026-09-25 19:24:30 +02:00
2026-09-07 22:34:47 +02:00
2026-09-19 13:32:41 +02:00
2026-04-28 17:34:06 +02:00
2026-08-16 23:04:22 +02:00
2026-07-22 19:17:23 +02:00
2026-06-25 00:25:28 +02:00
2026-04-09 22:13:08 +02:00
2026-09-25 17:42:59 +02:00
2026-09-25 17:42:59 +02:00
2026-09-23 13:40:01 +02:00
2026-08-25 21:13:34 +02:00
2026-09-09 19:27:08 +02:00
2026-08-16 21:12:21 +02:00
2026-08-06 19:19:18 +02:00
2026-09-22 17:25:43 +02:00
2026-09-25 18:06:49 +02:00
2026-08-25 20:09:18 +02:00
2026-09-25 17:33:31 +02:00
2026-09-23 18:31:27 +02:00
2026-09-09 19:27:08 +02:00
2026-05-09 17:37:41 +02:00
2026-05-31 15:52:27 +02:00
2026-09-19 13:32:41 +02:00
2026-08-16 22:20:49 +02:00
2026-05-06 20:07:36 +02:00
2026-08-18 15:48:05 +02:00
2026-07-19 10:10:31 +02:00
2026-08-16 22:20:49 +02:00
2026-08-06 18:23:21 +02:00
2026-04-28 17:34:06 +02:00
2026-09-19 13:32:41 +02:00
2026-08-06 18:23:21 +02:00
2026-08-16 02:19:04 +02:00
2026-09-25 19:27:24 +02:00
2026-09-22 20:42:07 +02:00
2026-04-16 19:07:42 +02:00
2026-09-25 18:06:49 +02:00
2026-08-23 19:44:56 +06:00
2026-09-24 17:47:33 +02:00
2026-07-08 15:41:46 +02:00
2026-09-25 18:40:22 +02:00
2026-05-21 23:35:58 +02:00
2026-09-25 17:59:17 +02:00