diff options
author | Murray Cumming <murrayc@murrayc.com> | 2011-03-21 12:44:36 +0100 |
---|---|---|
committer | Murray Cumming <murrayc@murrayc.com> | 2011-03-21 12:44:36 +0100 |
commit | 7d9352ab34a30950d81b1e1148d6f5a6401a74c9 (patch) | |
tree | 2c2a6ca2e17882ff1c316b03a24cc06d3754151b | |
parent | defb0eba23019ab01dbf7a80bfa6b2d87a4bc2a4 (diff) | |
download | glibmm-7d9352ab34a30950d81b1e1148d6f5a6401a74c9.tar.gz |
Correct some range checks to use >= instead of just >.
* glib/glibmm/stringutils.cc: Glib::Ascii::strtod():
* glib/src/variant.[hg|ccg]: get(): Correct the range check. This would
previously not have caught all wrong ranges.
Thanks to Michael Edwards.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | glib/glibmm/stringutils.cc | 2 | ||||
-rw-r--r-- | glib/src/variant.ccg | 6 | ||||
-rw-r--r-- | glib/src/variant.hg | 2 |
4 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,12 @@ +2011-03-21 Murray Cumming <murrayc@murrayc.com> + + Correct some range checks to use >= instead of just >. + + * glib/glibmm/stringutils.cc: Glib::Ascii::strtod(): + * glib/src/variant.[hg|ccg]: get(): Correct the range check. This would + previously not have caught all wrong ranges. + Thanks to Michael Edwards. + 2011-03-20 Krzesimir Nowak <qdlacz@gmail.com> Vectorutils, ArrayHandle: Check for NULL pointers. diff --git a/glib/glibmm/stringutils.cc b/glib/glibmm/stringutils.cc index 1d786675..5b61dd1c 100644 --- a/glib/glibmm/stringutils.cc +++ b/glib/glibmm/stringutils.cc @@ -45,7 +45,7 @@ double Glib::Ascii::strtod(const std::string& str, std::string::size_type& end_index, std::string::size_type start_index) { - if(start_index > str.size()) + if(start_index >= str.size()) { throw std::out_of_range("out of range (strtod): start_index > str.size()"); } diff --git a/glib/src/variant.ccg b/glib/src/variant.ccg index d47ae6c2..df93dcbd 100644 --- a/glib/src/variant.ccg +++ b/glib/src/variant.ccg @@ -82,7 +82,7 @@ VariantContainerBase::create_tuple(const std::vector<VariantBase>& children) void VariantContainerBase::get(VariantBase& child, gsize index) const { - if(index > g_variant_n_children(gobject_)) + if(index >= g_variant_n_children(gobject_)) throw std::out_of_range( "VariantContainerBase::get(): Index out of bounds."); @@ -248,7 +248,7 @@ Glib::ustring Variant<type_vec_ustring>::get(gsize index) const const gchar** array = g_variant_get_strv(const_cast<GVariant*>(gobj()), &n_elements); - if(index > n_elements) + if(index >= n_elements) throw std::out_of_range( "Variant< std::vector<Glib::ustring> >::get(): Index out of bounds."); @@ -332,7 +332,7 @@ std::string Variant<type_vec_string>::get(gsize index) const const gchar** array = g_variant_get_bytestring_array(const_cast<GVariant*>(gobj()), &n_elements); - if(index > n_elements) + if(index >= n_elements) throw std::out_of_range( "Variant< std::vector<std::string> >::get(): Index out of bounds."); diff --git a/glib/src/variant.hg b/glib/src/variant.hg index 2a10affa..235205ae 100644 --- a/glib/src/variant.hg +++ b/glib/src/variant.hg @@ -912,7 +912,7 @@ T Variant< std::vector<T> >::get(gsize index) const g_variant_get_fixed_array(const_cast<GVariant*>(gobj()), &n_elements, sizeof(T))); - if(index > n_elements) + if(index >= n_elements) throw std::out_of_range( "Variant< std::vector<T> >::get(): Index out of bounds."); |