diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-09-26 17:08:33 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-09-26 17:08:33 +0100 |
commit | d5f7e04923c5fe55db12e7da006c41c3853b4ddb (patch) | |
tree | 305a30c000581e4b78fba943d49f96bcd512aab9 /libstdc++-v3/include/experimental | |
parent | 8eb60b2f2254eee16d44ed5169837743b0debd5a (diff) | |
download | gcc-d5f7e04923c5fe55db12e7da006c41c3853b4ddb.tar.gz |
Fix array index error in address_v6 comparisons
* include/experimental/internet (operator==, operator<): Fix loop
condition to avoid reading past the end of the array.
From-SVN: r276153
Diffstat (limited to 'libstdc++-v3/include/experimental')
-rw-r--r-- | libstdc++-v3/include/experimental/internet | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet index 44d757c3a97..929a747a250 100644 --- a/libstdc++-v3/include/experimental/internet +++ b/libstdc++-v3/include/experimental/internet @@ -539,7 +539,7 @@ namespace ip const auto& __aa = __a._M_bytes; const auto& __bb = __b._M_bytes; int __i = 0; - for (; __aa[__i] == __bb[__i] && __i < 16; ++__i) + for (; __i < 16 && __aa[__i] == __bb[__i]; ++__i) ; return __i == 16 ? __a.scope_id() == __b.scope_id() : false; } @@ -554,7 +554,7 @@ namespace ip const auto& __aa = __a._M_bytes; const auto& __bb = __b._M_bytes; int __i = 0; - for (; __aa[__i] == __bb[__i] && __i < 16; ++__i) + for (; __i < 16 && __aa[__i] == __bb[__i]; ++__i) ; return __i == 16 ? __a.scope_id() < __b.scope_id() : __aa[__i] < __bb[__i]; } |