secondlife / secondlife/viewer

Possible crash getting energy attribute for keywords

Open
#6,285 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug triage
Dominant language
C++
Stars
299
Forks
146
Avg merge
1d 9h
Merged PRs (30d)
88

Description

Environment

Second Life Release 26.4.0.33894281402 (64bit)

Rest of environment- Release Notes

CPU: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz (3600.01 MHz)
Memory: 16302 MB
OS Version: Microsoft Windows 10 64-bit (Build 19045.7663)
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: NVIDIA GeForce RTX 2080/PCIe/SSE2

Windows Graphics Driver Version: 32.0.16.1088
OpenGL Version: 4.6.0 NVIDIA 610.88

Window size: 1920x1080
Font Size Adjustment: 96pt
UI Scaling: 1
Draw distance: 128m
Bandwidth: 10000kbit/s
LOD factor: 1.5
Render quality: 4
Texture memory: 8192MB
Disk cache: Max size 11468.8 MB (0.4% used)

J2C Decoder Version: KDU v8.4.1
Audio Driver Version: OpenAL, version 1.1 ALSOFT 1.24.2 / OpenAL Community / OpenAL Soft: OpenAL Soft
Dullahan: 1.26.0.202510161628
CEF: 139.0.40+g465474a+chromium-139.0.7258.139
Chromium: 139.0.7258.139
LibVLC Version: 3.0.21
Voice Server Version:

September 08 2026 14:12:07

Description

PR with possible fix: https://github.com/secondlife/viewer/pull/6286

There is a potential crash here- https://github.com/secondlife/viewer/blob/c37498bb4017e89654c0687a3f84792ecb445c47/indra/llui/llkeywords.cpp#L367-L371
std::stod will throw an exception if the string is empty, which based on the code, is a possible outcome and is supposed to default to 0.0 if it is empty. But right now instead, it will just crash before it can default the value.

Prior to 26.4, it didn't use std::stod at all so this is a new potential crash point.

Note: I noticed this being a possible crash when logging into an OpenSim simulator on Firestorm with 26.4 merged in that didn't send an energy attribute.

Reproduction steps

Unable to forcefully reproduce unless if you create a test sim where the energy attribute is empty/missing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in indra/llui/llkeywords.cpp at lines 367-371, where the energy attribute is parsed, and review the linked pull request #6286 for the proposed fix. Check the empty or missing attribute path and verify that it uses the intended default without throwing; a test simulator or equivalent test should cover that input.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.