From c34eab16ea48fdbdd04767dcc8b32aea4df24950 Mon Sep 17 00:00:00 2001 From: Future Date: Sun, 21 Apr 2024 17:29:15 +0200 Subject: [PATCH] fix: check for NULL string in stringtable check before dumping --- .../Game/IW4/AssetDumpers/AssetDumperStringTable.cpp | 9 ++++++++- .../Game/IW5/AssetDumpers/AssetDumperStringTable.cpp | 9 ++++++++- .../Game/T5/AssetDumpers/AssetDumperStringTable.cpp | 9 ++++++++- .../Game/T6/AssetDumpers/AssetDumperStringTable.cpp | 9 ++++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStringTable.cpp b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStringTable.cpp index 2d76ab91..8a7bd5e4 100644 --- a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperStringTable.cpp @@ -24,7 +24,14 @@ void AssetDumperStringTable::DumpAsset(AssetDumpingContext& context, XAssetInfo< for (auto column = 0; column < stringTable->columnCount; column++) { const auto* cell = &stringTable->values[column + row * stringTable->columnCount]; - csv.WriteColumn(cell->string); + if (cell->string != nullptr) + { + csv.WriteColumn(cell->string); + } + else + { + csv.WriteColumn(""); + } } csv.NextRow(); diff --git a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperStringTable.cpp b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperStringTable.cpp index 0502816d..0612c075 100644 --- a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperStringTable.cpp @@ -24,7 +24,14 @@ void AssetDumperStringTable::DumpAsset(AssetDumpingContext& context, XAssetInfo< for (auto column = 0; column < stringTable->columnCount; column++) { const auto* cell = &stringTable->values[column + row * stringTable->columnCount]; - csv.WriteColumn(cell->string); + if (cell->string != nullptr) + { + csv.WriteColumn(cell->string); + } + else + { + csv.WriteColumn(""); + } } csv.NextRow(); diff --git a/src/ObjWriting/Game/T5/AssetDumpers/AssetDumperStringTable.cpp b/src/ObjWriting/Game/T5/AssetDumpers/AssetDumperStringTable.cpp index 10899c2e..77899c6f 100644 --- a/src/ObjWriting/Game/T5/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ObjWriting/Game/T5/AssetDumpers/AssetDumperStringTable.cpp @@ -24,7 +24,14 @@ void AssetDumperStringTable::DumpAsset(AssetDumpingContext& context, XAssetInfo< for (auto column = 0; column < stringTable->columnCount; column++) { const auto* cell = &stringTable->values[column + row * stringTable->columnCount]; - csv.WriteColumn(cell->string); + if (cell->string != nullptr) + { + csv.WriteColumn(cell->string); + } + else + { + csv.WriteColumn(""); + } } csv.NextRow(); diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp index d214ebf8..2fb76cec 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperStringTable.cpp @@ -24,7 +24,14 @@ void AssetDumperStringTable::DumpAsset(AssetDumpingContext& context, XAssetInfo< for (auto column = 0; column < stringTable->columnCount; column++) { const auto* cell = &stringTable->values[column + row * stringTable->columnCount]; - csv.WriteColumn(cell->string); + if (cell->string != nullptr) + { + csv.WriteColumn(cell->string); + } + else + { + csv.WriteColumn(""); + } } csv.NextRow();