mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
prevent lua bombs
This commit is contained in:
parent
608e0ba27c
commit
843f554503
2 changed files with 9 additions and 1 deletions
|
@ -52,12 +52,18 @@ static int CmdScriptRun(const char *Cmd) {
|
|||
|
||||
int name_len = 0;
|
||||
int arg_len = 0;
|
||||
static uint8_t luascriptfile_idx = 0;
|
||||
sscanf(Cmd, "%127s%n %255[^\n\r]%n", preferredName, &name_len, arguments, &arg_len);
|
||||
|
||||
char *script_path;
|
||||
if ((!str_endswith(preferredName, ".cmd")) && (searchFile(&script_path, LUA_SCRIPTS_SUBDIR, preferredName, ".lua", true) == PM3_SUCCESS)) {
|
||||
int error;
|
||||
if (luascriptfile_idx == MAX_NESTED_LUASCRIPT) {
|
||||
PrintAndLogEx(ERR, "Too many nested scripts, skipping %s\n", script_path);
|
||||
return PM3_EMALLOC;
|
||||
}
|
||||
PrintAndLogEx(SUCCESS, "Executing Lua script: %s, args '%s'\n", script_path, arguments);
|
||||
luascriptfile_idx++;
|
||||
|
||||
// create new Lua state
|
||||
lua_State *lua_state;
|
||||
|
@ -98,7 +104,8 @@ static int CmdScriptRun(const char *Cmd) {
|
|||
//luaL_dofile(lua_state, buf);
|
||||
// close the Lua state
|
||||
lua_close(lua_state);
|
||||
PrintAndLogEx(SUCCESS, "\nFinished\n");
|
||||
luascriptfile_idx--;
|
||||
PrintAndLogEx(SUCCESS, "\nFinished %s\n", preferredName);
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
if ((!str_endswith(preferredName, ".lua")) && (searchFile(&script_path, CMD_SCRIPTS_SUBDIR, preferredName, ".cmd", true) == PM3_SUCCESS)) {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#define PROXHISTORY "history.txt"
|
||||
#define PROXLOG "log_%Y%m%d.txt"
|
||||
#define MAX_NESTED_CMDSCRIPT 10
|
||||
#define MAX_NESTED_LUASCRIPT 10
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue