diff --git a/src/Companion.cpp b/src/Companion.cpp index cde1083..5a82b3f 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -1507,9 +1507,9 @@ std::optional Companion::AddAsset(YAML::Node asset) { auto found = std::get<1>(decl.value()); if(GetSafeNode(found, "type") != type) { SPDLOG_ERROR("Asset clash detected {} vs {} at 0x{:X}", type, GetSafeNode(found, "type"), offset); + } else { + return found; } - - return found; } auto rom = this->GetRomData(); diff --git a/src/factories/naudio/v1/BookFactory.cpp b/src/factories/naudio/v1/BookFactory.cpp index a501bf5..96d1e53 100644 --- a/src/factories/naudio/v1/BookFactory.cpp +++ b/src/factories/naudio/v1/BookFactory.cpp @@ -46,6 +46,10 @@ std::optional> ADPCMBookFactory::parse(std::vector< book->numPredictors = reader.ReadInt32(); size_t length = 8 * book->order * book->numPredictors; + if(length > 0x40){ + return std::nullopt; + } + for(size_t i = 0; i < length; i++){ book->book.push_back(reader.ReadInt16()); }