From 9665d7a71bcd5cd79889b2b4908beaf66b76341d Mon Sep 17 00:00:00 2001
From: Adam Moss <moss@lindenlab.com>
Date: Thu, 8 Oct 2009 14:14:13 +0000
Subject: [PATCH] DEV-41081 - better than using the msvc kludge for suppressing
 warnings about memcpy, don't actually use memcpy - use our own safe 'copy'
 method.  also stripNonprintable() is probably a little faster now...

---
 indra/llcommon/llstring.h              | 7 ++++---
 indra/llcommon/tests/llstring_test.cpp | 3 ---
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index d0def896cf9..8f70726a9e5 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -991,14 +991,15 @@ void LLStringUtilBase<T>::stripNonprintable(std::basic_string<T>& string)
 	{
 		return;
 	}
-	char* c_string = new char[string.size() + 1];
+	size_t src_size = string.size();
+	char* c_string = new char[src_size + 1];
 	if(c_string == NULL)
 	{
 		return;
 	}
-	strcpy(c_string, string.c_str());	/*Flawfinder: ignore*/
+	copy(c_string, string.c_str(), src_size+1);
 	char* write_head = &c_string[0];
-	for (size_type i = 0; i < string.size(); i++)
+	for (size_type i = 0; i < src_size; i++)
 	{
 		char* read_head = &string[i];
 		write_head = &c_string[j];
diff --git a/indra/llcommon/tests/llstring_test.cpp b/indra/llcommon/tests/llstring_test.cpp
index 1d99214d69f..1f4603631a2 100644
--- a/indra/llcommon/tests/llstring_test.cpp
+++ b/indra/llcommon/tests/llstring_test.cpp
@@ -32,9 +32,6 @@
  * $/LicenseInfo$
  */
 
-// win32 kludge-o-rama
-#define _CRT_SECURE_NO_WARNINGS
-
 #include "../test/lltut.h"
 
 #include "../llstring.h"
-- 
GitLab