mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
test-unit-file: add test for improperly escaped exec string
Add a regression test for the recent breakage of handling improperly escaped exec strings in unit files. Code contributed by Martin Pitt: https://bugs.freedesktop.org/show_bug.cgi?id=90794
This commit is contained in:
parent
22874a348f
commit
80979f1ce4
@ -225,6 +225,15 @@ static void test_config_parse_exec(void) {
|
||||
check_execcommand(c1,
|
||||
"/sbin/find", NULL, ";", "x", false);
|
||||
|
||||
log_info("/* encoded semicolon */");
|
||||
r = config_parse_exec(NULL, "fake", 5, "section", 1,
|
||||
"LValue", 0,
|
||||
"/bin/find \\073",
|
||||
&c, NULL);
|
||||
assert_se(r >= 0);
|
||||
c1 = c1->command_next;
|
||||
check_execcommand(c1, "/bin/find", NULL, "\\073", NULL, false);
|
||||
|
||||
log_info("/* spaces in the filename */");
|
||||
r = config_parse_exec(NULL, "fake", 5, "section", 1,
|
||||
"LValue", 0,
|
||||
@ -296,6 +305,16 @@ static void test_config_parse_exec(void) {
|
||||
c1 = c1->command_next;
|
||||
check_execcommand(c1, "/path ", NULL, NULL, NULL, false);
|
||||
|
||||
log_info("/* quoted backslashes */");
|
||||
r = config_parse_exec(NULL, "fake", 5, "section", 1,
|
||||
"LValue", 0,
|
||||
"/bin/grep '\\w+\\K'",
|
||||
&c, NULL);
|
||||
assert_se(r >= 0);
|
||||
c1 = c1->command_next;
|
||||
check_execcommand(c1, "/bin/grep", NULL, "\\w+\\K", NULL, false);
|
||||
|
||||
|
||||
log_info("/* trailing backslash: \\ */");
|
||||
/* backslash is invalid */
|
||||
r = config_parse_exec(NULL, "fake", 4, "section", 1,
|
||||
|
Loading…
Reference in New Issue
Block a user