secondlife / secondlife/viewer
Possible crash getting energy attribute for keywords
Nobody has claimed this yet.
- 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 NotesCPU: 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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