summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext/vstring.tcc
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-09-05 17:38:44 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-09-05 17:38:44 +0000
commit5527be59f4f6621b8e99ecf13ed3a3126576b87f (patch)
treefac7424b0a7ea6dfa2132dca7aeb6ce696ba8ae9 /libstdc++-v3/include/ext/vstring.tcc
parent9a7fd67a829bbbcd95505a58301f7bff42e84833 (diff)
basic_string.tcc (find(const _CharT*, size_type, size_type)): Robustify.
2006-09-05 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (find(const _CharT*, size_type, size_type)): Robustify. * include/ext/vstring.tcc (find(const _CharT*, size_type, size_type)): Likewise. From-SVN: r116700
Diffstat (limited to 'libstdc++-v3/include/ext/vstring.tcc')
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc12
1 files changed, 8 insertions, 4 deletions
diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc
index 5196d10c6d9..2a880d99734 100644
--- a/libstdc++-v3/include/ext/vstring.tcc
+++ b/libstdc++-v3/include/ext/vstring.tcc
@@ -277,10 +277,14 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
if (__n == 0)
return __pos <= __size ? __pos : npos;
- for (; __pos + __n <= __size; ++__pos)
- if (traits_type::eq(__data[__pos], __s[0])
- && traits_type::compare(__data + __pos + 1, __s + 1, __n - 1) == 0)
- return __pos;
+ if (__n <= __size)
+ {
+ for (; __pos + __n <= __size; ++__pos)
+ if (traits_type::eq(__data[__pos], __s[0])
+ && traits_type::compare(__data + __pos + 1,
+ __s + 1, __n - 1) == 0)
+ return __pos;
+ }
return npos;
}