diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-09-05 17:38:44 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-09-05 17:38:44 +0000 |
commit | 5527be59f4f6621b8e99ecf13ed3a3126576b87f (patch) | |
tree | fac7424b0a7ea6dfa2132dca7aeb6ce696ba8ae9 /libstdc++-v3/include/ext | |
parent | 9a7fd67a829bbbcd95505a58301f7bff42e84833 (diff) | |
download | gcc-5527be59f4f6621b8e99ecf13ed3a3126576b87f.zip gcc-5527be59f4f6621b8e99ecf13ed3a3126576b87f.tar.gz gcc-5527be59f4f6621b8e99ecf13ed3a3126576b87f.tar.bz2 |
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')
-rw-r--r-- | libstdc++-v3/include/ext/vstring.tcc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc index 5196d10..2a880d9 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; } |