From e9a0833a86246dde90eef56e09b36fc4069a5ee4 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Tue, 25 Feb 2014 14:57:08 -0500 Subject: [PATCH] ScreenSaverRunner: Fix segmentation fault loading bad screen saver. When Settings.ModuleName() returned NULL here we got a segmentation fault trying to access the pointer. I ran into this trying to load up a non-screensaver executable in ScreenSaver, it crashed instead of doing the right thing and refusing to load. Also, since we go to the trouble of saving this to a variable, we should actually use it. --- src/kits/screensaver/ScreenSaverRunner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kits/screensaver/ScreenSaverRunner.cpp b/src/kits/screensaver/ScreenSaverRunner.cpp index c65128697b..2eefca76bb 100644 --- a/src/kits/screensaver/ScreenSaverRunner.cpp +++ b/src/kits/screensaver/ScreenSaverRunner.cpp @@ -96,7 +96,7 @@ ScreenSaverRunner::_LoadAddOn() _CleanUp(); const char* moduleName = fSettings.ModuleName(); - if (*moduleName == '\0') { + if (moduleName == NULL || *moduleName == '\0') { Resume(); return; } @@ -134,7 +134,7 @@ ScreenSaverRunner::_LoadAddOn() fprintf(stderr, "Unable to find the instantiation function.\n"); } else { BMessage state; - fSettings.GetModuleState(fSettings.ModuleName(), &state); + fSettings.GetModuleState(moduleName, &state); fSaver = instantiate(&state, fAddonImage); }