Fixed some crashes (1.4.12b4)
This commit is contained in:
parent
0f1665c97d
commit
bb935dd214
@ -78,11 +78,16 @@ void manager::loadProviders(const std::string& path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
deque<fs::path> paths;
|
deque<fs::path> paths;
|
||||||
for(const auto& entry : fs::directory_iterator(dir)){
|
error_code error_code{};
|
||||||
|
for(const auto& entry : fs::directory_iterator(dir, error_code)){
|
||||||
if(!entry.path().has_extension()) continue;
|
if(!entry.path().has_extension()) continue;
|
||||||
if(entry.path().extension().string() == ".so")
|
if(entry.path().extension().string() == ".so")
|
||||||
paths.push_back(entry.path());
|
paths.push_back(entry.path());
|
||||||
}
|
}
|
||||||
|
if(error_code) {
|
||||||
|
log::log(log::err, "Failed to scan the target directory (" + dir.string() + "): " + error_code.message());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::sort(paths.begin(), paths.end(), [](const fs::path& a, const fs::path& b){ return a.filename().string() < b.filename().string(); });
|
std::sort(paths.begin(), paths.end(), [](const fs::path& a, const fs::path& b){ return a.filename().string() < b.filename().string(); });
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit cc874a443ac40fabf0342b410dae5ae46045fa4f
|
Subproject commit e7befd4fc9c96b966b459ea5ad8530dc8fe9345b
|
2
music
2
music
@ -1 +1 @@
|
|||||||
Subproject commit 7ef7ea785aebc26d3f9c6e396270e7b03eccf587
|
Subproject commit 8e1ce32ae0b03f54efc54e76cd118cf01057159c
|
@ -1 +0,0 @@
|
|||||||
../repro/env/resources/
|
|
@ -369,6 +369,13 @@ bool VoiceClientConnection::next_reassembled_command(unique_lock<std::recursive_
|
|||||||
std::string error{};
|
std::string error{};
|
||||||
|
|
||||||
auto decompressed_size = compression::qlz_decompressed_size(payload.data_ptr(), payload.length());
|
auto decompressed_size = compression::qlz_decompressed_size(payload.data_ptr(), payload.length());
|
||||||
|
if(decompressed_size == 0) {
|
||||||
|
logTrace(this->client->getServerId(), "{} Failed to calculate decompressed size for received command. Dropping packet.", CLIENT_STR_LOG_PREFIX_(this->client));
|
||||||
|
return false;
|
||||||
|
} else if(decompressed_size > 20 * 1024 * 1024) { /* max 20MB */
|
||||||
|
logTrace(this->client->getServerId(), "{} Command packet has a too large compressed size. Dropping packet.", CLIENT_STR_LOG_PREFIX_(this->client));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
auto buffer = buffer::allocate_buffer(decompressed_size);
|
auto buffer = buffer::allocate_buffer(decompressed_size);
|
||||||
if(!compression::qlz_decompress_payload(payload.data_ptr(), buffer.data_ptr(), &decompressed_size)) {
|
if(!compression::qlz_decompress_payload(payload.data_ptr(), buffer.data_ptr(), &decompressed_size)) {
|
||||||
logTrace(this->client->getServerId(), "{} Failed to decompress received command. Dropping packet.", CLIENT_STR_LOG_PREFIX_(this->client));
|
logTrace(this->client->getServerId(), "{} Failed to decompress received command. Dropping packet.", CLIENT_STR_LOG_PREFIX_(this->client));
|
||||||
|
2
shared
2
shared
@ -1 +1 @@
|
|||||||
Subproject commit ee7f26b7ed883027f0a81ece1c2aacd41053ce1e
|
Subproject commit 16c2272fe4b479c55e6db6642d039a42b0774325
|
Loading…
Reference in New Issue
Block a user