Fix crash regression when invsize formspec gets used
The invsize formspec element is outdated. Even though, it is still supported, only a deprecation warning is shown, introduced by commit [1]. The lua context passed to the log_deprecated method added by commit [1] is NULL for the invsize deprecation warning, as its run on the client and not the server. Commit [1] has removed checks for NULL inside the log_deprecated method, resulting in a crash when a formspec with an invsize element is parsed. This commit puts the check back. Fixes #3260. Referenced commits: [1]:mutilcraft-mt53b5acec0a3c
"Add proper lua api deprecated handling" [2]:7b8d372947
"Use warningstream for deprecated field messages and refactor log_deprecated"
parent
b600bc30a9
commit
836486a98e
|
@ -179,10 +179,14 @@ void log_deprecated(lua_State *L, const std::string &message)
|
||||||
|
|
||||||
if (do_log) {
|
if (do_log) {
|
||||||
warningstream << message << std::endl;
|
warningstream << message << std::endl;
|
||||||
if (do_error)
|
// L can be NULL if we get called by log_deprecated(const std::string &msg)
|
||||||
script_error(L, LUA_ERRRUN, NULL, NULL);
|
// from scripting_game.cpp.
|
||||||
else
|
if (L) {
|
||||||
infostream << script_get_backtrace(L) << std::endl;
|
if (do_error)
|
||||||
|
script_error(L, LUA_ERRRUN, NULL, NULL);
|
||||||
|
else
|
||||||
|
infostream << script_get_backtrace(L) << std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue