|
Ran
|
Files
1883
|
Run time
1min
|
Badge
README BADGES
|
push
github
core/device: do not drop backslashes in SYSTEMD_WANTS=/SYSTEMD_USER_WANTS= (#35869) Let consider the following udev rules: ``` PROGRAM="/usr/bin/systemd-escape foo-bar-baz", ENV{SYSTEMD_WANTS}+="test1@$result.service" PROGRAM="/usr/bin/systemd-escape aaa-bbb-ccc", ENV{SYSTEMD_WANTS}+="test2@$result.service" ``` Then, a device expectedly gains a property: ``` SYSTEMD_WANTS=test1@foo\x2dbar\x2dbaz.service test2@aaa\x2dbbb\x2dccc.service ``` After the event being processed by udevd, PID1 processes the device, the property previously was parsed with `extract_first_word(EXTRACT_UNQUOTE)`, then the device unit gained the following dependencies: ``` Wants=test1@foox2dbarx2dbaz.service test2@aaax2dbbbx2dccc.service ``` So both `%i` and `%I` for the template services did not match with the original data, and it was hard to use `systemd-escape` in `PROGRAM=` udev rule token. This makes the property parsed with `extract_first_word(EXTRACT_UNQUOTE|EXTRACT_RETAIN_ESCAPE)`, hence the device unit now gains the following dependencies: ``` Wants=test1@foo\x2dbar\x2dbaz.service test2@aaa\x2dbbb\x2dccc.service ``` and `%I` for the template services match with the original data. Fixes a bug caused by ceed8f0c8 (v233). Fixes #16735. Replaces #16737 and #35768.
291321 of 407761 relevant lines covered (71.44%)
696525.16 hits per line
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
|---|