mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-06 17:41:04 +00:00
Enforce explicit size limit for media files
This commit is contained in:
parent
3cb8ce69d2
commit
251488b3aa
3 changed files with 15 additions and 0 deletions
|
@ -284,6 +284,9 @@ Accepted formats are:
|
|||
models: .x, .b3d, .obj, (since version 5.10:) .gltf, .glb
|
||||
fonts: .ttf, .woff (both since version 5.11, see notes below)
|
||||
|
||||
Currently the engine is unable to handle files over ~16MB in size. For best
|
||||
performance you should keep your media files as small as reasonably possible.
|
||||
|
||||
Other formats won't be sent to the client (e.g. you can store .blend files
|
||||
in a folder for convenience, without the risk that such files are transferred)
|
||||
|
||||
|
|
|
@ -16,8 +16,14 @@ constexpr u16 CLIENT_PROTOCOL_VERSION_MIN = 37;
|
|||
|
||||
extern const u16 FORMSPEC_API_VERSION;
|
||||
|
||||
// (applies to all media files, not just textures)
|
||||
#define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
|
||||
|
||||
// Due to our network protocol the maximum window size determines the maximum
|
||||
// media size we can safely allow. See the comment and check in Connection::Send().
|
||||
// This is a bit lower to include safety margin.
|
||||
#define MEDIAFILE_MAX_SIZE (16700000U)
|
||||
|
||||
typedef u16 session_t;
|
||||
|
||||
enum ToClientCommand : u16
|
||||
|
|
|
@ -2586,6 +2586,12 @@ bool Server::addMediaFile(const std::string &filename,
|
|||
<< filepath << "\"" << std::endl;
|
||||
return false;
|
||||
}
|
||||
if (filedata.size() > MEDIAFILE_MAX_SIZE) {
|
||||
errorstream << "Server::addMediaFile(): \""
|
||||
<< filepath << "\" is too big (" << (filedata.size() >> 10)
|
||||
<< "KiB). The internal limit is " << (MEDIAFILE_MAX_SIZE >> 10) << "KiB." << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string sha1 = hashing::sha1(filedata);
|
||||
std::string sha1_hex = hex_encode(sha1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue