Description

When removing curves on some assets, a crash can occur. This seems to be due to const FSmartNameMapping* CurveMapping being null and dereferenced within UAnimationBlueprintLibrary::RetrieveContainerNameForCurve.

Steps to Reproduce

Create an animation modifier.

On revert, remove a curve from the animation.

Add and apply this modifier on an animation.

 

Result: Performing this on some assets(depending on skeleton) results in a crash

Callstack

UE4Editor_Engine!FSmartNameMapping::Exists() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\smartname.cpp:213]
UE4Editor_AnimationModifiers!UAnimationBlueprintLibrary::RemoveCurve() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\private\animationblueprintlibrary.cpp:1140]
UE4Editor_AnimationModifiers!UAnimationBlueprintLibrary::execRemoveCurve() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\public\animationblueprintlibrary.h:32]
UE4Editor_CoreUObject!UObject::execCallMathFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:860]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:997]
UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:828]
UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1056]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:997]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1081]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4723]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1912]
UE4Editor_AnimationModifiers!UAnimationModifier::OnRevert() [d:\build\++ue4\sync\engine\intermediate\build\win64\ue4editor\inc\animationmodifiers\animationmodifier.gen.cpp:38]
UE4Editor_AnimationModifiers!UAnimationModifier::ApplyToAnimationSequence() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\private\animationmodifier.cpp:39]
UE4Editor_AnimationModifiers!SAnimationModifiersTab::ApplyModifiers() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\private\sanimationmodifierstab.cpp:440]
UE4Editor_AnimationModifiers!SAnimationModifiersTab::OnApplyModifier() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\private\sanimationmodifierstab.cpp:279]
UE4Editor_AnimationModifiers!TBaseSPMethodDelegateInstance<0,SAnimationModifiersTab,0,TTypeWrapper<void> __cdecl(TArray<TWeakObjectPtr<UAnimationModifier,FWeakObjectPtr>,TSizedDefaultAllocator<32> > const &)>::Execute() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:293]
UE4Editor_AnimationModifiers!SModifierListView::OnApplyModifier() [d:\build\++ue4\sync\engine\source\editor\animationmodifiers\private\smodifierlistview.cpp:62]
UE4Editor_AnimationModifiers!TBaseSPMethodDelegateInstance<0,SModifierListView,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:369]
UE4Editor_Slate!SMenuEntryBlock::OnClicked() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1030]
UE4Editor_Slate!SMenuEntryBlock::OnMenuItemButtonClicked() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:981]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:293]
UE4Editor_Slate!SButton::ExecuteOnClick() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:379]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:303]
UE4Editor_Slate!SMenuEntryButton::OnMouseButtonUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:385]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> >() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:273]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5707]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6312]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6285]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1880]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2332]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1560]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:790]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:130]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:4169]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:173]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:147]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:279]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
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-82678 in the post.

0
Login to Vote

Fixed
ComponentOLD - Anim
Affects Versions4.23
Target Fix4.25
Fix Commit12401707
Main Commit14151001
Release Commit12401707
CreatedOct 29, 2019
ResolvedMar 25, 2020
UpdatedAug 20, 2020