steam-audio
steam-audio copied to clipboard
[UE 5.4] Spatialization crash when SteamAudioSourceComponent owner actor is destroyed while playing sound.
System Information Please provide the following information about your system:
- Steam Audio version: 4.5.3
- (If applicable) Unity version: N/A
- (If applicable) Unreal Engine version: 5.4
- (If applicable) FMOD Studio version: N/A
- Operating System and version: W11 23H2
- (Optional) CPU architecture (e.g. x86-64, armv7): x64
Issue Description SteamAudioSpatialization.cpp at line 344 checks whether pointer for SteamAudioSourceComponent exists but does not check whether it's valid. As a result it can be submitted for processing while object is marked for deletion by garbage collector, resulting in Steam Audio accessing invalid pointers and crashing.
Steps To Reproduce Steps to reproduce the behavior:
- Create an actor with audio and steam audio components.
- Set it up so actor is destroyed while playing sound.
- In non-editor builds, the actor will be instantly garbage collected resulting in steam audio module crash (if user does not click on fatal error prompt, the game will keep running albeit without any sound).
No dumps but solution is simple, SteamAudioSourceComponent pointer check at line 344 in SteamAudioSpatialization.cpp needs to be wrapped in UEs IsValid() check to make sure that components pending deletion are no longer submitted to steam audio.