FIRE-35111 - Crash in LLSD when simulator features is uninitialised.

This check is really only needed for OpenSim so plpace an exclusion around it.
In addition place a guard on the viewerregion check to protect the opensim calls.
This may have a sideffect of return false to "bakesEnabled" when in fact we just don;t know yet. TBC
master
Beq 2025-02-01 14:01:55 +00:00
parent 517ab846cb
commit fc690b10fb
2 changed files with 11 additions and 6 deletions

View File

@ -1098,15 +1098,20 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
const LLWearableType::EType type = new_wearable->getType();
//<FS:Beq> BOM fallback legacy opensim
if(!gAgent.getRegion()->bakesOnMeshEnabled())
#ifdef OPENSIM
if (!LLGridManager::getInstance()->isInSecondLife())
{
if(type == LLWearableType::WT_UNIVERSAL)
if(!gAgent.getRegion()->bakesOnMeshEnabled())
{
LL_DEBUGS("Avatar") << "Universal wearable not supported on this region - ignoring." << LL_ENDL;
mismatched++;
continue;
if(type == LLWearableType::WT_UNIVERSAL)
{
LL_DEBUGS("Avatar") << "Universal wearable not supported on this region - ignoring." << LL_ENDL;
mismatched++;
continue;
}
}
}
#endif
//</FS:Beq>
if (type < 0 || type>=LLWearableType::WT_COUNT)
{

View File

@ -3978,7 +3978,7 @@ bool LLViewerRegion::meshUploadEnabled() const
bool LLViewerRegion::bakesOnMeshEnabled() const
{
return (mSimulatorFeatures.has("BakesOnMeshEnabled") &&
return (mSimulatorFeaturesReceived && mSimulatorFeatures.has("BakesOnMeshEnabled") && // FIRE-35111 (bugsplat) checking bakes on mesh feature before features received.
mSimulatorFeatures["BakesOnMeshEnabled"].asBoolean());
}