summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
authorDon Kjer <don@lindenlab.com>2007-05-02 21:24:47 +0000
committerDon Kjer <don@lindenlab.com>2007-05-02 21:24:47 +0000
commit1c909afe3998778e4cc045c9ab733e8afbf7c25b (patch)
tree75c00a32a8e305280cbec253195d1113d628fc3e /indra/llprimitive
parentbc59c04653bf1404e8148a8169208b146a123b28 (diff)
svn merge -r 60342:61148 svn+ssh://svn/svn/linden/branches/maintenance into release
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/llprimitive.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index fa0b4747e6..13719d0a62 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -777,14 +777,14 @@ const char * LLPrimitive::pCodeToString(const LLPCode pcode)
{
snprintf(mask, sizeof(mask), "hemi"); /* Flawfinder: ignore */
}
- else if (mask != 0)
+ else
{
snprintf(mask, sizeof(mask), "%x", mask_code); /* Flawfinder: ignore */
}
- else
- {
- mask[0] = 0;
- }
+
+ // extra sanity against snprintf() being naturally crap
+ mask[sizeof(mask)-1] = '\0';
+ shape[sizeof(shape)-1] = '\0';
if (mask[0])
{
@@ -795,6 +795,11 @@ const char * LLPrimitive::pCodeToString(const LLPCode pcode)
snprintf(pcode_string, sizeof(pcode_string), "%s", shape); /* Flawfinder: ignore */
}
}
+
+ // Be really sure that pcode_string is nul-terminated after we've
+ // been using crappy snprintf() to build it.
+ pcode_string[sizeof(pcode_string)-1] = '\0';
+
return pcode_string;
}