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]:
b5acec0a3c5701c53854ff7afdf4008863e6e8df "Add proper lua api deprecated handling"
[2]:
7b8d372947aae232ddf598155e972bb4dda157a "Use warningstream for deprecated field messages and refactor log_deprecated"
if (do_log) {
warningstream << message << std::endl;
- if (do_error)
- script_error(L, LUA_ERRRUN, NULL, NULL);
- else
- infostream << script_get_backtrace(L) << std::endl;
+ // L can be NULL if we get called by log_deprecated(const std::string &msg)
+ // from scripting_game.cpp.
+ if (L) {
+ if (do_error)
+ script_error(L, LUA_ERRRUN, NULL, NULL);
+ else
+ infostream << script_get_backtrace(L) << std::endl;
+ }
}
}