From fcff1a673967d6313ccba94fb9157c6dce992cb7 Mon Sep 17 00:00:00 2001 From: Dave Corley Date: Fri, 15 Mar 2024 22:23:14 -0500 Subject: [PATCH] Fix #7887, use actual instead of reported size for script data --- CHANGELOG.md | 1 + components/esm3/loadscpt.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93d9bd158c..a89eaacaaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -158,6 +158,7 @@ Bug #7841: Editor: "Dirty" water heights are saved in modified CELLs Bug #7859: AutoCalc flag is not used to calculate potion value Bug #7872: Region sounds use wrong odds + Bug #7887: Editor: Mismatched reported script data size and actual data size causes a crash during save Feature #2566: Handle NAM9 records for manual cell references Feature #3537: Shader-based water ripples Feature #5173: Support for NiFogProperty diff --git a/components/esm3/loadscpt.cpp b/components/esm3/loadscpt.cpp index f79f4989ef..2eb272fe8b 100644 --- a/components/esm3/loadscpt.cpp +++ b/components/esm3/loadscpt.cpp @@ -149,6 +149,8 @@ namespace ESM if (!hasHeader) esm.fail("Missing SCHD subrecord"); + // Reported script data size is not always trustworthy, so override it with actual data size + mData.mScriptDataSize = mScriptData.size(); } void Script::save(ESMWriter& esm, bool isDeleted) const