按源保护 PythonPlugin INI 节解析边界
This commit is contained in:
@@ -119,6 +119,8 @@ grep -F 'status = PLUGIN_EXCEPTION_DURING_PATH_APPEND;' \
|
||||
grep -F 'int IniFile::tildeExpand(const std::string &path, std::string &result)' \
|
||||
"$linuxcnc_root/src/emc/ini/inifile.cc" >/dev/null
|
||||
grep -F "if(!home)" "$linuxcnc_root/src/emc/ini/inifile.cc" >/dev/null
|
||||
grep -F 'IniFile::trim(sect);' "$linuxcnc_root/src/emc/ini/inifile.cc" >/dev/null
|
||||
grep -F 'Section header has trailing content, ignored' "$linuxcnc_root/src/emc/ini/inifile.cc" >/dev/null
|
||||
grep -F 'retval = bp::exec_file(cmd, main_namespace, main_namespace);' \
|
||||
"$linuxcnc_root/src/emc/pythonplugin/python_plugin.cc" >/dev/null
|
||||
grep -F 'retval = bp::exec(cmd, main_namespace, main_namespace);' \
|
||||
@@ -347,6 +349,8 @@ for needle in [
|
||||
"status = PLUGIN_BAD_PATH;",
|
||||
"status = PLUGIN_INITTAB_FAILED;",
|
||||
"failed to initialize built-in module",
|
||||
"read_ini_section(text, section_name)",
|
||||
"section_name = trim_ini_value(text.substr(1, close - 1));",
|
||||
'check_python_path_entries(iniFilename,',
|
||||
"PLUGIN_EXCEPTION_DURING_PATH_PREPEND",
|
||||
"PLUGIN_EXCEPTION_DURING_PATH_APPEND",
|
||||
@@ -369,6 +373,7 @@ for needle in [
|
||||
if needle not in python_plugin_inittab_probe:
|
||||
raise SystemExit(f"PythonPlugin inittab probe missing first-caller status assertion: {needle}")
|
||||
for needle in [
|
||||
"[ PYTHON ] ; section comment",
|
||||
"PLUGIN_NO_SECTION",
|
||||
"PLUGIN_BAD_INIFILE",
|
||||
"PLUGIN_BAD_PATH",
|
||||
@@ -457,6 +462,7 @@ for phrase in [
|
||||
"first-caller `_inittab` `PLUGIN_INITTAB_FAILED` edge",
|
||||
"preserve the `TOPLEVEL` missing-path `PLUGIN_BAD_PATH` edge",
|
||||
"preserve `PATH_PREPEND` and `PATH_APPEND` tilde-expansion failure statuses",
|
||||
"preserve LinuxCNC INI section-name trimming and trailing section-comment handling",
|
||||
"LinuxCNC `rcs_print_error` split entry points",
|
||||
"without native print routing",
|
||||
"LinuxCNC userspace `rtapi_snprintf()` formatting",
|
||||
|
||||
Reference in New Issue
Block a user