[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49126] trunk/blender: BGE LibLoad: Allow the user to disable loading text datablocks if they want to attempt to increase security by not loading potential Python scripts .
Mitchell Stokes
mogurijin at gmail.com
Mon Jul 23 00:58:13 CEST 2012
Revision: 49126
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49126
Author: moguri
Date: 2012-07-22 22:58:12 +0000 (Sun, 22 Jul 2012)
Log Message:
-----------
BGE LibLoad: Allow the user to disable loading text datablocks if they want to attempt to increase security by not loading potential Python scripts.
Modified Paths:
--------------
trunk/blender/doc/python_api/rst/bge.logic.rst
trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
Modified: trunk/blender/doc/python_api/rst/bge.logic.rst
===================================================================
--- trunk/blender/doc/python_api/rst/bge.logic.rst 2012-07-22 21:13:32 UTC (rev 49125)
+++ trunk/blender/doc/python_api/rst/bge.logic.rst 2012-07-22 22:58:12 UTC (rev 49126)
@@ -172,7 +172,7 @@
Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
-.. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
+.. function:: LibLoad(blend, type, data, load_actions=False, verbose=False, load_scripts=True)
Converts the all of the datablocks of the given type from the given blend.
@@ -186,6 +186,8 @@
:type load_actions: bool
:arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
:type verbose: bool
+ :arg load_scripts: Whether or not to load text datablocks as well (can be disabled for some extra security)
+ :type load_scripts: bool
.. function:: LibNew(name, type, data)
Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp 2012-07-22 21:13:32 UTC (rev 49125)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp 2012-07-22 22:58:12 UTC (rev 49126)
@@ -988,8 +988,7 @@
load_datablocks(main_newlib, bpy_openlib, path, idcode);
- if (idcode==ID_SCE) {
- /* assume we want text blocks too */
+ if (idcode==ID_SCE && options & LIB_LOAD_LOAD_SCRIPTS) {
load_datablocks(main_newlib, bpy_openlib, path, ID_TXT);
}
@@ -1045,9 +1044,9 @@
}
/* Handle any text datablocks */
+ if (options & LIB_LOAD_LOAD_SCRIPTS)
+ addImportMain(main_newlib);
- addImportMain(main_newlib);
-
/* Now handle all the actions */
if (options & LIB_LOAD_LOAD_ACTIONS) {
ID *action;
Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h 2012-07-22 21:13:32 UTC (rev 49125)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h 2012-07-22 22:58:12 UTC (rev 49126)
@@ -182,6 +182,7 @@
{
LIB_LOAD_LOAD_ACTIONS = 1,
LIB_LOAD_VERBOSE = 2,
+ LIB_LOAD_LOAD_SCRIPTS = 4,
};
Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp 2012-07-22 21:13:32 UTC (rev 49125)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp 2012-07-22 22:58:12 UTC (rev 49126)
@@ -676,12 +676,12 @@
char *err_str= NULL;
short options=0;
- int load_actions=0, verbose=0;
+ int load_actions=0, verbose=0, load_scripts=1;
- static const char *kwlist[] = {"path", "group", "buffer", "load_actions", "verbose", NULL};
+ static const char *kwlist[] = {"path", "group", "buffer", "load_actions", "verbose", "load_scripts", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|y*ii:LibLoad", const_cast<char**>(kwlist),
- &path, &group, &py_buffer, &load_actions, &verbose))
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|y*iii:LibLoad", const_cast<char**>(kwlist),
+ &path, &group, &py_buffer, &load_actions, &verbose, &load_scripts))
return NULL;
/* setup options */
@@ -689,6 +689,8 @@
options |= KX_BlenderSceneConverter::LIB_LOAD_LOAD_ACTIONS;
if (verbose != 0)
options |= KX_BlenderSceneConverter::LIB_LOAD_VERBOSE;
+ if (load_scripts != 0)
+ options |= KX_BlenderSceneConverter::LIB_LOAD_LOAD_SCRIPTS;
if (!py_buffer.buf)
{
More information about the Bf-blender-cvs
mailing list