swtpm/samples/py_swtpm_localca/swtpm_utils.py
Stefan Berger e621b21d4c samples: Do not follow symlink on logfile (CVE-2020-28407)
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-11-17 15:47:43 -05:00

40 lines
967 B
Python

""" swtpm_logging.py
"""
# pylint: disable=W0703
import os
import sys
def append_to_file(filename, string):
"""" Append a string to a file """
try:
filedesc = os.open(filename, os.O_WRONLY|os.O_APPEND|os.O_CREAT|os.O_NOFOLLOW, 0o640)
os.write(filedesc, string.encode('utf-8'))
os.close(filedesc)
except Exception as ex:
sys.stdout.write("Error: %s\n" % ex)
sys.stdout.write(string)
try:
if filedesc > 0:
os.close(filedesc)
except Exception:
pass
def logit(logfile, string):
""" Print the given string to stdout or into the logfile """
if len(logfile) == 0:
sys.stdout.write(string)
else:
append_to_file(logfile, string)
def logerr(logfile, string):
""" Print the given string to stderr or into the logfile """
if len(logfile) == 0:
sys.stdout.write(string)
else:
append_to_file(logfile, string)