From 2458078987ba94facaa230dc06b7d86a4323a8cf Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 15 Mar 2015 18:52:52 +0000 Subject: [PATCH] Skip digi_sync_sounds loop if !Viewer If a sound is used, it may dereference Viewer. If Viewer is null, this will crash. In 630f11945e40c856aed0d5ee61b62eb084e6dca9, digi_sync_sounds changed to assume Viewer is valid. This crashes during early startup when not using the SDL_mixer backend, even though no sounds are in use. Reported-by: derhass Fixes: 630f11945e40c856aed0d5ee61b62eb084e6dca9 ("Cache Viewer in digiobj") --- similar/main/digiobj.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/similar/main/digiobj.cpp b/similar/main/digiobj.cpp index 65d8d8733..563474f64 100644 --- a/similar/main/digiobj.cpp +++ b/similar/main/digiobj.cpp @@ -530,6 +530,8 @@ void digi_sync_sounds() } SoundQ_process(); + if (!Viewer) + return; const vcobjptr_t viewer{Viewer}; range_for (auto &s, SoundObjects) {