Skip to content

Commit 192f545

Browse files
authored
Merge pull request #2072 from evgenyz/add-subshell-for-bash-fix-script
Wrap Bash snippets in a subshell when generating a fix script
2 parents 6506089 + cb9bccb commit 192f545

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/XCCDF_POLICY/xccdf_policy_remediate.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ static int _write_fix_header_to_fd(const char *sys, int output_fd, struct xccdf_
633633
"###############################################################################\n"
634634
"# BEGIN fix (%i / %i) for '%s'\n"
635635
"###############################################################################\n"
636-
"(>&2 echo \"Remediating rule %i/%i: '%s'\")\n",
636+
"(>&2 echo \"Remediating rule %i/%i: '%s'\"); (\n",
637637
current, total, xccdf_rule_get_id(rule), current, total, xccdf_rule_get_id(rule));
638638
return _write_text_to_fd_and_free(output_fd, fix_header);
639639
} else {
@@ -644,7 +644,7 @@ static int _write_fix_header_to_fd(const char *sys, int output_fd, struct xccdf_
644644
static int _write_fix_footer_to_fd(const char *sys, int output_fd, struct xccdf_rule *rule)
645645
{
646646
if (oscap_streq(sys, "") || oscap_streq(sys, "urn:xccdf:fix:script:sh") || oscap_streq(sys, "urn:xccdf:fix:commands")) {
647-
char *fix_footer = oscap_sprintf("\n# END fix for '%s'\n\n", xccdf_rule_get_id(rule));
647+
char *fix_footer = oscap_sprintf("\n) # END fix for '%s'\n\n", xccdf_rule_get_id(rule));
648648
return _write_text_to_fd_and_free(output_fd, fix_footer);
649649
} else {
650650
return 0;

tests/API/XCCDF/fix/all.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function test_generate_fix {
1616
# `tail -n +2` to skip the first line with progress reporting
1717
local GENERATED_FIX RELEVANT_FIX_CONTENTS
1818
GENERATED_FIX=$($OSCAP xccdf generate fix --result-id "$TESTRESULT_ID" "$INPUT")
19-
RELEVANT_FIX_CONTENTS=$(grep -v -E "^([\t ]*|[\t ]*#.*)$" <<< "$GENERATED_FIX" | tail -n +2)
19+
RELEVANT_FIX_CONTENTS=$(grep -v -E "^([\t ]*|[\t ]*#.*|\) #.*)$" <<< "$GENERATED_FIX" | tail -n +2)
2020
if [ "$?" != "0" ]; then
2121
return 1
2222
fi

0 commit comments

Comments
 (0)