Description

ResolveName will replace the subobject delimiter (colon) with two periods. This increases the length of the string, and can cause asserts due to the string exceeding NAME_SIZE even when the name was previously verified to fall within the allowed length.

Steps to Reproduce

1. Copy a string to clipboard that is less than 1024 (NAME_SIZE) characters long (such as 1023 characters) with many colons (23 colons should work for this test case)

2. Open a dropdown combo box in editor for selecting assets with a search bar at the top.

3. Note crash (or breakpoint at checkf statement if connected to visual studio).

Callstack
> UE4Editor-Core.dll!FNameHelper::Make(FNameStringView View, EFindName FindType, int InternalNumber) Line 2006 C++> UE4Editor-Core.dll!FNameHelper::Make(FNameStringView View, EFindName FindType, int InternalNumber) Line 2006 C++  UE4Editor-Core.dll!FNameHelper::MakeWithNumber(const FWideStringViewWithWidth View, EFindName FindType, int InternalNumber) Line 1994 C++  [Inline Frame] UE4Editor-Core.dll!FNameHelper::MakeDetectNumber(FWideStringViewWithWidth) Line 1924 C++  UE4Editor-Core.dll!FName::FName(const wchar_t * Name, EFindName FindType) Line 2104 C++  UE4Editor-CoreUObject.dll!StaticFindObject(UClass * ObjectClass, UObject * InObjectPackage, const wchar_t * OrigInName, bool ExactClass) Line 382 C++  [Inline Frame] UE4Editor-AssetRegistry.dll!FindObject(UObject *) Line 1292 C++  UE4Editor-AssetRegistry.dll!UAssetRegistryImpl::GetAssetByObjectPath(const FName ObjectPath, bool bIncludeOnlyOnDiskAssets) Line 1091 C++  UE4Editor-PropertyEditor.dll!SPropertyMenuAssetPicker::CanPaste() Line 264 C++  [Inline Frame] UE4Editor-PropertyEditor.dll!Invoke(bool(SPropertyMenuAssetPicker::*)()) Line 65 C++  [Inline Frame] UE4Editor-PropertyEditor.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(bool(SPropertyMenuAssetPicker::*)() &) Line 306 C++  UE4Editor-PropertyEditor.dll!TBaseSPMethodDelegateInstance<0,SPropertyMenuAssetPicker,0,bool __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 290 C++  [Inline Frame] UE4Editor-Slate.dll!TDelegate<bool __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 580 C++  [Inline Frame] UE4Editor-Slate.dll!FUIAction::CanExecute() Line 127 C++  UE4Editor-Slate.dll!SMenuEntryBlock::IsEnabled() Line 1132 C++  [Inline Frame] UE4Editor-Slate.dll!Invoke(bool(const SMenuEntryBlock::*)()) Line 72 C++  [Inline Frame] UE4Editor-Slate.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(bool(const SMenuEntryBlock::*)() &) Line 306 C++  UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<1,SMenuEntryBlock const ,0,bool __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 290 C++  [Inline Frame] UE4Editor-SlateCore.dll!TDelegate<bool __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 580 C++  [Inline Frame] UE4Editor-SlateCore.dll!TAttribute<bool>::Get() Line 160 C++  [Inline Frame] UE4Editor-SlateCore.dll!SWidget::IsEnabled() Line 883 C++  UE4Editor-SlateCore.dll!SWidget::ShouldBeEnabled(bool InParentEnabled) Line 1458 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++  UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++  UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++  UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++  UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-Slate.dll!SScrollBox::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1050 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++  UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-Slate.dll!SBorder::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 120 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++  UE4Editor-Slate.dll!SBorder::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 120 C++  UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1462 C++  UE4Editor-SlateCore.dll!FSlateWindowElementList::FDeferredPaint::ExecutePaint(int LayerId, FSlateWindowElementList & OutDrawElements, const FSlateRect & MyCullingRect) Line 736 C++  UE4Editor-SlateCore.dll!FSlateWindowElementList::PaintDeferred(int LayerId, const FSlateRect & MyCullingRect) Line 761 C++  UE4Editor-SlateCore.dll!SWindow::PaintWindow(double CurrentTime, float DeltaTime, FSlateWindowElementList & OutDrawElements, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 2100 C++  UE4Editor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,0> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1068 C++  UE4Editor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,0> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1113 C++  UE4Editor-Slate.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,0> DrawOnlyThisWindow) Line 1295 C++  UE4Editor-Slate.dll!FSlateApplication::DrawWindows() Line 1029 C++  UE4Editor-Slate.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime) Line 1585 C++  UE4Editor-Slate.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1439 C++  UE4Editor.exe!FEngineLoop::Tick() Line 5025 C++  [Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++  UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 178 C++  UE4Editor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 262 C++  UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 320 C++  [External Code] 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-134267 in the post.

1
Login to Vote

Fixed
ComponentUE - Foundation - Core - UObject
Affects Versions4.27
Target Fix5.0
Fix Commit18255728
Main Commit18255739
CreatedNov 8, 2021
ResolvedNov 22, 2021
UpdatedNov 23, 2021