7088065 CCVS test fail: no exception thrown for out-of-range string access
authorStefan Teleman <stefan.teleman@oracle.com>
Tue, 25 Oct 2011 15:36:36 -0700
changeset 539 9db7f022d292
parent 538 d8d7345db00f
child 540 4e3006696e5f
7088065 CCVS test fail: no exception thrown for out-of-range string access 7088072 -library=stdcxx4 caused runtime seg-fault 7098498 std::moneypunct typedef invalid on recent C++ compiler
components/stdcxx/patches/090-7088072-string.cc.patch
components/stdcxx/patches/091-7098498-moneypunct.h.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/stdcxx/patches/090-7088072-string.cc.patch	Tue Oct 25 15:36:36 2011 -0700
@@ -0,0 +1,16 @@
+# Patch for CR 7088072 and 7088065
+--- stdcxx-4.2.1/include/string.cc	2011-07-10 13:09:53.630466602 -0700
++++ stdcxx-4.2.1/include/string.cc	2011-09-10 13:20:30.199451960 -0700
+@@ -415,6 +415,12 @@
+                                    "size_type, size_type, value_type)"), 
+                       __size0 - __xlen, max_size () - __count));
+ 
++    _RWSTD_REQUIRES (__count < (max_size () - __pos),
++                     (_RWSTD_ERROR_LENGTH_ERROR,
++                      _RWSTD_FUNC ("basic_string::replace (size_type, "
++                                   "size_type, size_type, value_type)"), 
++                      __count, (max_size () - __pos)));
++
+     // compute the resulting string size
+     const size_type __size1 = __size0 - __xlen + __count;
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/stdcxx/patches/091-7098498-moneypunct.h.patch	Tue Oct 25 15:36:36 2011 -0700
@@ -0,0 +1,12 @@
+# Patch for CR 7098498
+--- stdcxx-4.2.1/include/loc/_moneypunct.h	2011-07-10 11:57:53.407297720 -0700
++++ stdcxx-4.2.1/include/loc/_moneypunct.h	2011-10-06 09:50:48.591327947 -0700
+@@ -67,7 +67,7 @@
+     typedef
+     basic_string<char_type, char_traits<char_type>, allocator<char_type> >
+     string_type;
+-    typedef moneypunct<_CharT, bool> _Type;
++    typedef moneypunct<_CharT, _Intl> _Type;
+ 
+     _EXPLICIT moneypunct (_RWSTD_SIZE_T __refs = 0)
+         : _RW::__rw_facet (__refs),