aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-04-02 10:08:50 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-04-02 10:08:50 +0000
commit3d919c620fb071efa7d388622d4b1f713d985045 (patch)
treebe3c13d814365e3fa5cee2460c108c245f4eee79
parent5b3f6d1a469246362fec0726b34a71d0bb5da96b (diff)
downloadgcc-3d919c620fb071efa7d388622d4b1f713d985045.zip
gcc-3d919c620fb071efa7d388622d4b1f713d985045.tar.gz
gcc-3d919c620fb071efa7d388622d4b1f713d985045.tar.bz2
PR libstdc++/31401 (vstring bits)
2007-04-02 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31401 (vstring bits) * include/ext/vstring.tcc (find(const _CharT*, size_type, size_type)): Avoid unsigned overflow. From-SVN: r123422
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc2
2 files changed, 7 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 62bbca9..2007552 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,11 @@
2007-04-02 Paolo Carlini <pcarlini@suse.de>
+ PR libstdc++/31401 (vstring bits)
+ * include/ext/vstring.tcc (find(const _CharT*, size_type,
+ size_type)): Avoid unsigned overflow.
+
+2007-04-02 Paolo Carlini <pcarlini@suse.de>
+
* include/bits/locale_facets.tcc (num_put<>::do_put(iter_type,
ios_base&, char_type, const void*)): Fix for sizeof(const void*)
> sizeof(unsigned long).
diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc
index 69dd5f0..43467a5 100644
--- a/libstdc++-v3/include/ext/vstring.tcc
+++ b/libstdc++-v3/include/ext/vstring.tcc
@@ -279,7 +279,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (__n <= __size)
{
- for (; __pos + __n <= __size; ++__pos)
+ for (; __pos <= __size - __n; ++__pos)
if (traits_type::eq(__data[__pos], __s[0])
&& traits_type::compare(__data + __pos + 1,
__s + 1, __n - 1) == 0)