aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2010-04-27 16:00:35 +0400
committerAlexander Monakov <amonakov@gcc.gnu.org>2010-04-27 16:00:35 +0400
commit99425265031f423d75230090bc71a86a5f14aa50 (patch)
tree60055c15b4fce6f667fd1d02152247244e69fe37
parentecb9d36fe8ce6ffdcf44a1153c9a16bbf7fe3932 (diff)
downloadgcc-99425265031f423d75230090bc71a86a5f14aa50.zip
gcc-99425265031f423d75230090bc71a86a5f14aa50.tar.gz
gcc-99425265031f423d75230090bc71a86a5f14aa50.tar.bz2
1.c (test01): Clarify size definition.
2010-04-27 Alexander Monakov <amonakov@ispras.ru> * testsuite/22_locale/codecvt/unshift/char/1.c (test01): Clarify size definition. Use memcpy and memcmp to avoid access beyond allocated memory. From-SVN: r158780
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc6
2 files changed, 9 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4d96e3a..501037e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-27 Alexander Monakov <amonakov@ispras.ru>
+
+ * testsuite/22_locale/codecvt/unshift/char/1.c (test01): Clarify size
+ definition. Use memcpy and memcmp to avoid access beyond allocated
+ memory.
+
2010-04-27 Jonathan Wakely <jwakely.gcc@gmail.com>
* doc/xml/manual/status_cxx200x.xml: Update to match n3092.
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
index ba417af..363b72e 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
@@ -35,7 +35,7 @@ void test01()
bool test __attribute__((unused)) = true;
const char* c_lit = "black pearl jasmine tea";
const char* from_next;
- int size = 23;
+ int size = std::strlen(c_lit);
char* c_arr = new char[size];
char* c_ref = new char[size];
char* to_next;
@@ -68,10 +68,10 @@ void test01()
VERIFY( to_next == c_arr );
// unshift
- strcpy(c_arr, c_lit);
+ memcpy(c_arr, c_lit, size);
result r3 = cvt->unshift(state, c_arr, c_arr + size, to_next);
VERIFY( r3 == codecvt_base::noconv );
- VERIFY( !strcmp(c_arr, c_lit) );
+ VERIFY( !memcmp(c_arr, c_lit, size) );
VERIFY( to_next == c_arr );
delete [] c_arr;