in src/python/detectors/leaky_subprocess_timeout/leaky_subprocess_timeout.py [0:0]
def subprocess_timeout_compliant():
import subprocess
process = subprocess.Popen("ls -al",
bufsize=-1,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
try:
# Compliant: makes sure to terminate the child process when
# the timeout expires.
outs, errs = process.communicate(timeout=15)
except subprocess.TimeoutExpired:
process.kill()
outs, errs = process.communicate()