Description

Editing bool of the nested child CrashableDataAsset causes crash.

Expected: CrashableDataAsset children are properly assigned.

Result: Engine crash

Steps to Reproduce
  1. Download Attached project and Generate Visual Studio project files
  2. Open CrashableCustomization.cpp in Visual Studio
  3. Set FORCE_REFRESH to 0
  4. Create new DataAsset that derives from CrashableDataAsset in the Editor
  5. Add new element to CrashableDataAsset's array of children (this triggers the customization for the first time)
  6. Note, 1 delegate will have been bound to SetOnChildPropertyValueChanged
  7. Set the CrashableDataAsset's new child to a new CrashableDataAsset using the dropdown
  8. Note, this causes a 2nd delegate to also be bound to SetOnChildPropertyValueChanged
  9. Toggle the child CrashableDataAsset's bool, this will trigger the delegate twice, the second call resulting in an invalid memory access of HeaderRow
  10. Note, you can also toggle the child CrashableDataAsset between "none" and an instance of CrashableDataAsset to bind many delegates to the on child changed event
Callstack

LoginId:5964f8f84766f4b976277180442869c1
EpicAccountId:d237bdd466454ba6a10848877d154538

Access violation - code c0000005 (first/second chance not available)

UE4Editor_CrashTest_7031!FDetailWidgetDecl::operator[]() [e:\epic\ue_4.19\engine\source\editor\propertyeditor\public\detailwidgetrow.h:34]
UE4Editor_CrashTest_7031!FCrashableCustomization::CustomizeHeaderHelper() [e:\epic\unreal projects\crashtest\source\crashtest\crashablecustomization.cpp:46]
UE4Editor_CrashTest_7031!<lambda_6bcefbca978c8c22a38b9ffc1863f0ac>::operator()() [e:\epic\unreal projects\crashtest\source\crashtest\crashablecustomization.cpp:29]
UE4Editor_CrashTest_7031!TBaseFunctorDelegateInstance<void __cdecl(void),<lambda_6bcefbca978c8c22a38b9ffc1863f0ac> >::ExecuteIfSafe() [e:\epic\ue_4.19\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:926]
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-59772 in the post.

8
Login to Vote

Won't Fix
ComponentTools
Affects Versions4.19.24.20
CreatedMay 30, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021