summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-06-09 00:23:46 -0500
committerDave Parks <davep@lindenlab.com>2011-06-09 00:23:46 -0500
commitb6e7d771dab572a6783a47bd1359776c4e721ec1 (patch)
treecfbc4628b4becfc1200ae0ad020577e4eeabc374
parent57521d594c5c77048fc3d82358159eb2acbc1c9e (diff)
SH-1696 Protect against sculpt triangle bombs by turning high-surface area sculpties into spheres.
-rw-r--r--indra/llmath/llvolume.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 53f73d8637..9eecb7bfe2 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -3232,7 +3232,11 @@ void LLVolume::sculpt(U16 sculpt_width, U16 sculpt_height, S8 sculpt_components,
// don't test lowest LOD to support legacy content DEV-33670
if (mDetail > SCULPT_MIN_AREA_DETAIL)
{
- if (sculptGetSurfaceArea() < SCULPT_MIN_AREA)
+ F32 area = sculptGetSurfaceArea();
+
+ const F32 SCULPT_MAX_AREA = 32.f;
+
+ if (area < SCULPT_MIN_AREA || area > SCULPT_MAX_AREA)
{
data_is_empty = TRUE;
}