acrogenesis
394c1371c9
Model what each parser does with an empty and a dangling directive
...
Review of the previous commits turned up four places where the predicates
and their tests disagreed with the tools they are modelling, each checked
against udevadm verify, systemd-analyze verify and visudo -cf rather than
against reading of the sources.
An empty ExecStop= resets the list, so a unit an administrator neutralised
that way runs nothing at shutdown and is no longer ours to remove; the
predicate now tracks the last state instead of returning on the first home
path it sees. A file whose last line ends in a backslash still carries a
live directive for systemd, so the pending logical line is emitted at EOF;
udev ignores such a line and sudo rejects the file outright, so this costs
those two nothing. The scanner's taint pass now reads += appends, which its
own comment already promised: the value of an append is no use, but a name
that reaches a user root through one has to be judged on it.
Two regression guards passed against the implementations they were written
for. The udev continuation fixture put the whole RUN+= below the comment, so
it matched whether or not the pending half was carried across; the split now
falls inside the RUN+= value. The sudoers one kept its file on the strength
of a spec above the comment, so it could not fail either; the hand-written
spec now sits below. Both fail against a mutant that discards the pending
line. The comment above the second also claimed a continued comment stays a
comment, which visudo contradicts.
2026-08-29 19:23:02 -06:00
..
2026-08-29 19:23:02 -06:00
2026-08-10 14:10:31 +02:00
2026-08-23 14:26:25 -04:00
2026-08-13 12:13:41 +02:00
2026-08-09 13:27:38 +02:00
2026-08-25 16:07:17 +02:00
2026-08-07 23:49:43 +02:00
2026-08-07 15:46:10 +02:00
2026-08-07 15:46:10 +02:00
2026-08-12 18:46:17 +02:00
2026-08-07 15:46:10 +02:00
2026-08-13 19:30:56 +02:00
2026-08-24 17:58:52 +02:00
2026-05-25 14:47:08 +02:00
2026-06-22 19:57:05 +02:00
2026-08-12 16:49:15 +02:00
2026-08-16 05:45:06 -04:00
2026-07-08 11:49:56 -07:00
2026-08-12 16:49:15 +02:00
2026-08-12 16:49:15 +02:00
2026-07-20 16:37:33 -07:00
2026-05-25 14:18:39 +02:00
2026-06-24 13:31:17 +02:00
2026-08-23 17:02:29 -04:00
2026-08-10 20:27:40 +02:00
2026-08-13 10:35:22 +02:00
2026-07-28 21:28:31 -07:00
2026-08-22 17:19:23 +02:00
2026-08-10 22:49:44 +02:00
2026-08-27 21:40:31 +02:00
2026-08-01 15:35:34 -05:00
2026-08-07 23:58:51 +02:00
2026-08-28 19:00:03 -04:00
2026-08-25 13:01:01 -06:00
2026-08-12 16:49:15 +02:00
2026-07-23 17:05:29 -07:00
2026-08-15 12:34:28 +02:00
2026-08-13 22:37:29 +02:00
2026-08-23 17:02:29 -04:00
2026-08-19 11:56:51 +02:00
2026-08-20 11:44:11 +02:00
2026-08-12 16:58:46 +02:00
2026-08-12 18:37:40 +02:00
2026-08-25 21:09:45 +02:00
2026-08-27 11:26:28 +02:00
2026-08-29 14:24:05 -04:00
2026-08-27 09:21:07 +02:00
2026-08-25 13:01:01 -06:00
2026-08-04 12:16:54 -05:00
2026-08-08 14:58:29 +02:00
2026-08-11 11:04:50 -04:00
2026-08-11 11:04:50 -04:00
2026-08-25 09:37:55 +02:00
2026-08-24 21:58:27 +02:00
2026-07-16 21:53:15 -07:00
2026-07-18 18:21:39 -07:00
2026-05-27 10:41:12 +02:00
2026-07-11 11:42:55 -07:00
2026-05-29 15:25:21 +02:00
2026-08-23 14:26:25 -04:00
2026-06-04 18:38:25 -04:00
2026-08-09 21:54:21 +02:00
2026-07-19 17:36:34 -07:00
2026-08-25 09:10:20 +02:00
2026-08-09 13:57:36 +02:00
2026-08-07 23:59:50 +02:00
2026-08-13 12:25:25 +02:00
2026-08-12 14:01:58 +02:00
2026-08-13 12:37:43 +02:00
2026-08-11 18:34:07 +02:00
2026-08-13 12:22:58 +02:00
2026-08-11 13:20:23 +02:00
2026-08-18 21:40:20 +02:00
2026-08-13 20:28:43 +02:00
2026-07-29 14:49:55 -04:00
2026-08-25 11:03:12 +02:00
2026-08-18 22:24:56 +02:00
2026-08-11 13:26:24 +02:00
2026-08-11 11:29:35 +02:00
2026-07-16 21:19:28 -07:00
2026-05-29 15:59:13 +02:00
2026-07-23 21:03:43 -07:00
2026-07-21 15:25:49 -07:00
2026-06-22 17:32:56 +02:00
2026-08-12 16:49:15 +02:00
2026-06-23 16:22:27 +02:00
2026-08-22 16:55:01 +02:00
2026-08-12 16:57:57 +02:00
2026-07-22 16:10:45 -07:00
2026-08-22 20:18:14 +02:00
2026-07-29 17:15:27 -04:00
2026-08-12 16:42:37 +02:00
2026-06-28 20:46:23 -04:00
2026-08-29 19:23:02 -06:00
2026-07-25 12:35:17 -07:00
2026-08-11 23:35:40 -07:00
2026-08-10 05:58:56 -07:00
2026-07-26 19:19:33 -07:00
2026-08-13 21:04:47 +02:00
2026-08-12 16:49:15 +02:00
2026-08-12 16:49:15 +02:00
2026-08-11 11:29:35 +02:00
2026-06-04 18:38:25 -04:00
2026-08-12 16:49:15 +02:00
2026-06-25 06:55:11 -04:00
2026-08-22 16:24:21 +02:00
2026-08-13 09:58:15 +02:00
2026-08-15 17:04:04 +02:00
2026-08-23 11:44:23 +02:00
2026-08-23 14:26:25 -04:00
2026-06-12 13:49:46 -04:00
2026-07-20 11:07:44 -07:00
2026-08-24 14:36:09 +02:00
2026-08-22 13:43:46 +02:00
2026-08-11 13:26:24 +02:00
2026-08-25 11:03:12 +02:00
2026-08-11 18:25:44 +02:00
2026-08-05 08:30:12 -05:00
2026-08-11 14:16:32 -07:00
2026-07-23 20:37:25 -07:00
2026-06-21 12:31:06 +02:00
2026-07-31 17:18:42 -04:00
2026-08-07 12:50:04 +02:00
2026-08-17 03:36:59 -04:00
2026-07-21 15:26:20 -07:00
2026-08-23 18:31:42 -04:00
2026-08-27 16:53:55 +02:00
2026-07-18 21:49:47 -07:00
2026-08-13 10:48:18 +02:00
2026-08-13 10:48:18 +02:00
2026-07-24 16:48:14 -07:00
2026-06-24 13:40:16 +02:00
2026-07-18 12:31:03 -07:00
2026-08-25 09:10:20 +02:00
2026-08-01 13:13:39 -05:00
2026-07-29 22:39:55 -04:00
2026-08-12 16:49:15 +02:00
2026-07-29 18:11:32 -04:00
2026-07-29 21:34:47 -04:00
2026-08-29 18:19:51 -04:00
2026-08-12 16:49:15 +02:00
2026-07-23 13:51:07 -07:00
2026-06-29 10:49:43 -05:00
2026-08-01 15:36:34 -05:00
2026-07-19 09:33:23 -07:00
2026-08-14 12:24:47 +02:00
2026-08-29 19:23:02 -06:00
2026-08-20 22:28:31 +02:00
2026-08-25 13:01:01 -06:00
2026-08-27 17:28:13 +02:00
2026-08-27 17:28:13 +02:00
2026-06-22 18:30:16 +02:00
2026-05-25 14:18:39 +02:00
2026-08-19 17:29:36 +02:00
2026-08-11 11:29:35 +02:00
2026-08-29 19:23:02 -06:00
2026-07-23 15:04:22 -07:00
2026-08-12 16:49:15 +02:00
2026-08-13 12:23:48 +02:00
2026-08-12 16:49:15 +02:00
2026-08-25 12:09:17 +02:00
2026-08-25 12:09:17 +02:00
2026-08-25 12:09:17 +02:00
2026-08-27 19:55:36 +02:00
2026-07-27 15:32:56 -07:00
2026-07-19 17:36:34 -07:00
2026-08-01 15:38:55 -05:00
2026-08-10 03:31:17 -07:00
2026-07-29 23:21:45 -04:00
2026-08-10 14:14:57 -07:00
2026-07-26 19:19:33 -07:00
2026-08-07 18:44:37 +02:00
2026-08-09 19:15:21 +02:00
2026-08-24 21:58:27 +02:00
2026-08-24 18:56:00 +02:00
2026-08-24 21:58:27 +02:00
2026-08-24 15:33:03 +02:00
2026-08-13 11:46:45 +02:00
2026-07-22 17:31:14 -07:00
2026-08-01 15:38:55 -05:00
2026-08-07 23:43:49 +02:00
2026-08-23 18:31:42 -04:00
2026-08-01 15:44:07 -05:00
2026-05-29 14:28:03 +02:00
2026-08-27 19:52:37 +02:00
2026-08-23 16:43:31 +02:00
2026-08-25 22:30:09 +02:00
2026-08-03 16:52:02 -05:00
2026-08-25 11:03:12 +02:00
2026-08-09 04:29:26 -07:00
2026-08-12 16:49:15 +02:00
2026-08-14 08:23:45 +02:00
2026-07-27 15:50:28 -07:00
2026-07-23 15:28:32 -07:00
2026-07-23 15:28:32 -07:00
2026-08-12 11:56:02 +02:00
2026-07-27 15:50:28 -07:00
2026-08-12 11:56:02 +02:00
2026-06-04 18:38:25 -04:00
2026-08-14 00:15:07 -07:00
2026-06-04 18:38:25 -04:00
2026-08-12 11:56:02 +02:00
2026-08-14 09:08:34 +02:00
2026-07-29 20:04:49 -07:00
2026-08-25 13:01:01 -06:00
2026-07-17 07:59:20 -07:00
2026-07-29 09:15:53 -07:00
2026-08-23 14:26:25 -04:00
2026-08-13 19:33:22 +02:00
2026-08-05 17:43:14 +02:00
2026-08-27 19:45:45 +02:00
2026-08-29 03:32:08 -04:00
2026-08-27 19:25:25 +02:00
2026-08-01 12:53:30 -07:00
2026-08-07 12:50:04 +02:00
2026-08-19 13:59:25 +02:00
2026-08-29 15:15:51 +01:00
2026-08-29 15:15:51 +01:00
2026-08-25 08:45:50 +02:00
2026-08-25 22:29:27 +02:00
2026-07-26 14:37:22 -07:00