diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 518d8012da..e16f26d8d5 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -3358,7 +3358,7 @@ static int parse_line( r = extract_many_words( &buffer, NULL, - EXTRACT_UNQUOTE, + EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE, &action, &path, &mode, diff --git a/test/units/testsuite-22.17.sh b/test/units/testsuite-22.17.sh new file mode 100755 index 0000000000..f43aba5ad9 --- /dev/null +++ b/test/units/testsuite-22.17.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# Test for C-style escapes in file names and contents +set -eux +set -o pipefail + +data="\x20foo\nbar" +dst="/tmp/x/\x20a\nb" + +systemd-tmpfiles --create - <