in flink-python/pyflink/pyflink_gateway_server.py [0:0]
def prepare_environment_variables(env):
flink_home = _find_flink_home()
# get the realpath of tainted path value to avoid CWE22 problem that constructs a path or URI
# using the tainted value and might allow an attacker to access, modify, or test the existence
# of critical or sensitive files.
real_flink_home = os.path.realpath(flink_home)
if 'FLINK_CONF_DIR' in env:
flink_conf_directory = os.path.realpath(env['FLINK_CONF_DIR'])
else:
flink_conf_directory = os.path.join(real_flink_home, "conf")
env['FLINK_CONF_DIR'] = flink_conf_directory
if 'FLINK_LIB_DIR' in env:
flink_lib_directory = os.path.realpath(env['FLINK_LIB_DIR'])
else:
flink_lib_directory = os.path.join(real_flink_home, "lib")
env['FLINK_LIB_DIR'] = flink_lib_directory
if 'FLINK_OPT_DIR' in env:
flink_opt_directory = os.path.realpath(env['FLINK_OPT_DIR'])
else:
flink_opt_directory = os.path.join(real_flink_home, "opt")
env['FLINK_OPT_DIR'] = flink_opt_directory
if 'FLINK_PLUGINS_DIR' in env:
flink_plugins_directory = os.path.realpath(env['FLINK_PLUGINS_DIR'])
else:
flink_plugins_directory = os.path.join(real_flink_home, "plugins")
env['FLINK_PLUGINS_DIR'] = flink_plugins_directory
env["FLINK_BIN_DIR"] = os.path.join(real_flink_home, "bin")