mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-06-08 15:54:22 +00:00
fix: security vulnerabilities
Tested that all functions related to the touched files work will test sqlite on a CI build
This commit is contained in:
@@ -75,7 +75,8 @@ uint32_t Inventory::GetLotCount(const LOT lot) const {
|
||||
}
|
||||
|
||||
void Inventory::SetSize(const uint32_t value) {
|
||||
free += static_cast<int32_t>(value) - static_cast<int32_t>(size);
|
||||
const auto delta = static_cast<int32_t>(value) - static_cast<int32_t>(size);
|
||||
free = static_cast<uint32_t>(std::max(0, static_cast<int32_t>(free) + delta));
|
||||
|
||||
size = value;
|
||||
|
||||
|
||||
@@ -401,7 +401,8 @@ void Item::Disassemble(const eInventoryType inventoryType) {
|
||||
const auto deliminator = '+';
|
||||
|
||||
while (std::getline(ssData, token, deliminator)) {
|
||||
const auto modLot = std::stoi(token.substr(2, token.size() - 1));
|
||||
if (token.size() <= 2) continue; // invalid token, must have size of at least 3.
|
||||
const auto modLot = GeneralUtils::TryParse(token.substr(2, token.size() - 1), LOT_NULL);
|
||||
|
||||
modArray.push_back(modLot);
|
||||
}
|
||||
@@ -440,7 +441,10 @@ void Item::DisassembleModel(uint32_t numToDismantle) {
|
||||
std::vector<std::string> renderAssetSplit = GeneralUtils::SplitString(renderAsset, '/');
|
||||
if (renderAssetSplit.empty()) return;
|
||||
|
||||
std::string lxfmlPath = "BrickModels" + lxfmlFolderName + "/" + GeneralUtils::SplitString(renderAssetSplit.back(), '.').at(0) + ".lxfml";
|
||||
const auto renderAssetSplitSplit = GeneralUtils::SplitString(renderAssetSplit.back(), '.');
|
||||
if (renderAssetSplitSplit.empty()) return;
|
||||
|
||||
std::string lxfmlPath = "BrickModels" + lxfmlFolderName + "/" + renderAssetSplitSplit[0] + ".lxfml";
|
||||
auto file = Game::assetManager->GetFile(lxfmlPath.c_str());
|
||||
|
||||
if (!file) {
|
||||
|
||||
@@ -128,8 +128,8 @@ void ItemSet::OnEquip(const LOT lot) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* skillComponent = m_InventoryComponent->GetParent()->GetComponent<SkillComponent>();
|
||||
auto* missionComponent = m_InventoryComponent->GetParent()->GetComponent<MissionComponent>();
|
||||
auto [skillComponent, missionComponent] = m_InventoryComponent->GetParent()->GetComponentsMut<SkillComponent, MissionComponent>();
|
||||
if (!skillComponent || !missionComponent) return; // Nothing to do here if these are null
|
||||
|
||||
for (const auto skill : skillSet) {
|
||||
auto* skillTable = CDClientManager::GetTable<CDSkillBehaviorTable>();
|
||||
|
||||
Reference in New Issue
Block a user