OSDN Git Service

2010-04-27 Alexander Monakov <amonakov@ispras.ru>
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 2010 12:00:35 +0000 (12:00 +0000)
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 2010 12:00:35 +0000 (12:00 +0000)
* testsuite/22_locale/codecvt/unshift/char/1.c (test01): Clarify size
definition.  Use memcpy and memcmp to avoid access beyond allocated
memory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158780 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc

index 4d96e3a..501037e 100644 (file)
@@ -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.
index ba417af..363b72e 100644 (file)
@@ -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;