Description

When (unintentionally) trying to set one texture as the composite texture of another, which itself is the composite texture of the first, a stack overflow occurs leading to a crash: in UTexture::PostEditChangeProperty, texture A calls PostEditChange() on all textures that reference it (texture B in this case), which in turn will call PostEditChange() on texture A, creating an infinite loop.

Steps to Reproduce
  • Create 2 textures in the editor (for example by duplicating existing textures) and call them A and B.
  • Open texture A and set texture B as the composite texture. Select one of the composition modes that is not disabled.
  • When doing the same for texture B (i.e. setting texture A as composite texture), it should crash with a stack overflow.
Callstack

UnrealEditor-Core.dll!FNameHelper::FindOrStoreString(FNameStringView View, EFindName FindType) Line 3191
UnrealEditor-Core.dll!FNameHelper::MakeWithNumber(const FWideStringViewWithWidth View, EFindName FindType, int InternalNumber) Line 2994
[Inline Frame] UnrealEditor-Core.dll!FNameHelper::MakeDetectNumber(FWideStringViewWithWidth) Line 2935
UnrealEditor-Core.dll!FName::FName(int Len, const wchar_t * Name, EFindName FindType) Line 3368
[Inline Frame] UnrealEditor-ContentBrowserData.dll!FName::

{ctor}

(TStringView<wchar_t>) Line 988
UnrealEditor-ContentBrowserData.dll!UContentBrowserDataSource::TryConvertInternalPathToVirtual(const FName InInternalPath, FName & OutPath) Line 152
UnrealEditor-ContentBrowserAssetDataSource.dll!UContentBrowserAssetDataSource::CreateAssetFileItem(const FAssetData & InAssetData) Line 3172
UnrealEditor-ContentBrowserAssetDataSource.dll!UContentBrowserAssetDataSource::OnObjectPropertyChanged(UObject * InObject, FPropertyChangedEvent & InPropertyChangedEvent) Line 3325
[Inline Frame] UnrealEditor-ContentBrowserAssetDataSource.dll!Invoke(void(UContentBrowserAssetDataSource::*)(UObject *, FPropertyChangedEvent &)) Line 66
[Inline Frame] UnrealEditor-ContentBrowserAssetDataSource.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UContentBrowserAssetDataSource::*)(UObject *, FPropertyChangedEvent &) &) Line 317
UnrealEditor-ContentBrowserAssetDataSource.dll!V::TBaseUObjectMethodDelegateInstance::ExecuteIfSafe(UObject * <Params_0>, FPropertyChangedEvent & <Params_1>) Line 667
[Inline Frame] UnrealEditor-CoreUObject.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast(UObject *) Line 257
[Inline Frame] UnrealEditor-CoreUObject.dll!TMulticastDelegate<void __cdecl(UObject *,FPropertyChangedEvent &),FDefaultDelegateUserPolicy>::Broadcast(UObject *) Line 1079
UnrealEditor-CoreUObject.dll!UObject::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 467
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 803
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461
UnrealEditor-Engine.dll!UTexture::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 983
UnrealEditor-CoreUObject.dll!UObject::PostEditChange() Line 461

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Tools
Affects Versions5.5
CreatedMay 28, 2025
UpdatedMay 30, 2025
View Jira Issue