diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2014-04-12 04:02:26 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2014-04-12 04:02:26 (GMT) |
commit | a791213860bee1a2990a9b502819f17abf7ff8a0 (patch) | |
tree | eb6a0fb329cf263a781901e4ecfad41809f76fbe /c++/src/H5Location.cpp | |
parent | 170b9d0eed23d84bfad64f216b8759b1dc40586c (diff) | |
download | hdf5-a791213860bee1a2990a9b502819f17abf7ff8a0.zip hdf5-a791213860bee1a2990a9b502819f17abf7ff8a0.tar.gz hdf5-a791213860bee1a2990a9b502819f17abf7ff8a0.tar.bz2 |
[svn-r25030] Purpose: Fix HDFFV-8658
Description:
Turned on warnings and removed some of those.
(merged from trunk-r24994)
Platforms tested:
Linux/ppc64 (ostrich)
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Diffstat (limited to 'c++/src/H5Location.cpp')
-rw-r--r-- | c++/src/H5Location.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp index ead5822..80e1462 100644 --- a/c++/src/H5Location.cpp +++ b/c++/src/H5Location.cpp @@ -488,7 +488,7 @@ void H5Location::removeComment(const H5std_string& name) const /// will be truncated to accommodate the null terminator. // Programmer Binh-Minh Ribler - Mar 2014 //-------------------------------------------------------------------------- -ssize_t H5Location::getComment(const char* name, const size_t buf_size, char* comment) const +ssize_t H5Location::getComment(const char* name, size_t buf_size, char* comment) const { // H5Oget_comment_by_name will get buf_size chars of the comment including // the null terminator @@ -502,7 +502,7 @@ ssize_t H5Location::getComment(const char* name, const size_t buf_size, char* co } // If the comment is longer than the provided buffer size, the C library // will not null terminate it - if (comment_len >= buf_size) + if ((size_t)comment_len >= buf_size) comment[buf_size-1] = '\0'; // Return the actual comment length, which might be different from buf_size @@ -519,7 +519,7 @@ ssize_t H5Location::getComment(const char* name, const size_t buf_size, char* co ///\exception H5::LocationException // Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013) //-------------------------------------------------------------------------- -H5std_string H5Location::getComment(const char* name, const size_t buf_size) const +H5std_string H5Location::getComment(const char* name, size_t buf_size) const { // Initialize string to "", so that if there is no comment, the returned // string will be empty @@ -549,6 +549,10 @@ H5std_string H5Location::getComment(const char* name, const size_t buf_size) con // Used overloaded function ssize_t comment_len = getComment(name, tmp_len+1, comment_C); + if (comment_len < 0) + { + throw LocationException("H5Location::getComment", "H5Oget_comment_by_name failed"); + } // Convert the C comment to return comment = comment_C; @@ -568,7 +572,7 @@ H5std_string H5Location::getComment(const char* name, const size_t buf_size) con /// \c H5std_string for \a name. // Programmer Binh-Minh Ribler - 2000 (moved from CommonFG, Sep 2013) //-------------------------------------------------------------------------- -H5std_string H5Location::getComment(const H5std_string& name, const size_t buf_size) const +H5std_string H5Location::getComment(const H5std_string& name, size_t buf_size) const { return(getComment(name.c_str(), buf_size)); } @@ -854,11 +858,14 @@ H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const { H5O_type_t obj_type = H5O_TYPE_UNKNOWN; herr_t ret_value = H5Rget_obj_type2(getId(), ref_type, ref, &obj_type); - - if (obj_type == H5O_TYPE_UNKNOWN || obj_type >= H5O_TYPE_NTYPES) + if (ret_value < 0) { throw ReferenceException(inMemFunc("getRefObjType"), "H5Rget_obj_type2 failed"); } + if (obj_type == H5O_TYPE_UNKNOWN || obj_type >= H5O_TYPE_NTYPES) + { + throw ReferenceException(inMemFunc("getRefObjType"), "H5Rget_obj_type2 returned invalid type"); + } return(obj_type); } |