@@ -156,7 +156,7 @@ RequestResult RequestHandler::SetCurrentProgramScene(const Request &request)
156156 return RequestResult::Error (statusCode, comment);
157157
158158 OBSCanvasAutoRelease canvas = obs_source_get_canvas (scene);
159- if (!(obs_canvas_get_flags (canvas) & MAIN))
159+ if (!canvas || ! (obs_canvas_get_flags (canvas) & MAIN))
160160 return RequestResult::Error (
161161 RequestStatus::InvalidResourceState,
162162 " The specified scene is not from the main canvas and cannot be set as the program scene." );
@@ -226,7 +226,7 @@ RequestResult RequestHandler::SetCurrentPreviewScene(const Request &request)
226226 return RequestResult::Error (statusCode, comment);
227227
228228 OBSCanvasAutoRelease canvas = obs_source_get_canvas (scene);
229- if (!(obs_canvas_get_flags (canvas) & MAIN))
229+ if (!canvas || ! (obs_canvas_get_flags (canvas) & MAIN))
230230 return RequestResult::Error (
231231 RequestStatus::InvalidResourceState,
232232 " The specified scene is not from the main canvas and cannot be set as the preview scene." );
@@ -301,6 +301,9 @@ RequestResult RequestHandler::RemoveScene(const Request &request)
301301 return RequestResult::Error (statusCode, comment);
302302
303303 OBSCanvasAutoRelease canvas = obs_source_get_canvas (scene);
304+ if (!canvas)
305+ return RequestResult::Error (RequestStatus::ResourceActionFailed, " Error getting canvas for the specified scene." );
306+
304307 if ((obs_canvas_get_flags (canvas) & MAIN) && Utils::Obs::NumberHelper::GetCanvasSceneCount (canvas) < 2 )
305308 return RequestResult::Error (RequestStatus::NotEnoughResources,
306309 " You cannot remove the last scene in the collection." );
0 commit comments