[PATCH 4/4] added a new combinefixes.py writen in python and adds fixing of special characters "<", ">", "&"

Shawn Wells shawn at redhat.com
Fri Mar 29 16:48:30 UTC 2013


On 3/29/13 9:54 AM, Brian Millett wrote:
> Signed-off-by: Brian Millett <bmillett at gmail.com>
> ---
>   RHEL6/transforms/combinefixes.py | 37 +++++++++++++++++++++++++++++++++++++
>   1 file changed, 37 insertions(+)
>   create mode 100755 RHEL6/transforms/combinefixes.py
>
> diff --git a/RHEL6/transforms/combinefixes.py b/RHEL6/transforms/combinefixes.py
> new file mode 100755
> index 0000000..4c4bb55
> --- /dev/null
> +++ b/RHEL6/transforms/combinefixes.py
> @@ -0,0 +1,37 @@
> +#!/usr/bin/python
> +
> +import sys, os
> +
> +header = '''<fix-group id="bash" system="urn:xccdf:fix:script:sh" xmlns="http://checklists.nist.gov/xccdf/1.1">\n'''
> +footer = '</fix-group>\n'
> +
> +def encode(text):
> +    text = text.replace('&','&amp;')
> +    text = text.replace('>','&gt;')
> +    text = text.replace('<','&lt;')
> +    return text
> +
> +def main():
> +    if len(sys.argv) < 2:
> +        print "Provide a directory name, which contains the fixes."
> +        sys.exit(1)
> +
> +    fixDir = sys.argv[1]
> +    output = sys.argv[2]
> +    out = open(output,'w')
> +    out.write(header)
> +    for filename in os.listdir(fixDir):
> +        if filename.endswith(".sh"):
> +            body = ""
> +            with open( fixDir + "/" + filename, 'r') as f:
> +                body = body + encode(f.read())
> +            fixName = os.path.splitext(filename)[0]
> +            out.write("<fix rule=\""+fixName+"\">\n")
> +            out.write(body+"\n")
> +            out.write("</fix>\n")
> +
> +    out.write(footer)
> +    sys.exit(0)
> +
> +if __name__ == "__main__":
> +    main()
Ack



More information about the scap-security-guide mailing list