diff options
author | Dave Parks <davep@lindenlab.com> | 2011-06-09 00:23:46 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-06-09 00:23:46 -0500 |
commit | b6e7d771dab572a6783a47bd1359776c4e721ec1 (patch) | |
tree | cfbc4628b4becfc1200ae0ad020577e4eeabc374 | |
parent | 57521d594c5c77048fc3d82358159eb2acbc1c9e (diff) |
SH-1696 Protect against sculpt triangle bombs by turning high-surface area sculpties into spheres.
-rw-r--r-- | indra/llmath/llvolume.cpp | 6 |
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; } |