From: Brad Hubbard Date: Sat, 17 Jun 2017 01:44:01 +0000 (+1000) Subject: ceph-dencoder: Silence coverity CID 1412579 X-Git-Tag: v12.1.0~55^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F15744%2Fhead;p=ceph.git ceph-dencoder: Silence coverity CID 1412579 141 if (i == 0) 142 i = m_list.size(); 143 if ((i == 0) || (i > m_list.size())) 144 return "invalid id for generated object"; 145 typename list::iterator p = m_list.begin(); 146 for (i--; i > 0 && p != m_list.end(); ++p, --i) ; >>> CID 1412579: API usage errors (INVALIDATE_ITERATOR) >>> Dereferencing iterator "p" though it is already past the end of its container. 147 m_object = *p; 148 return string(); 149 } 150 151 bool is_deterministic() override { 152 return !nondeterministic; Signed-off-by: Brad Hubbard --- diff --git a/src/test/encoding/ceph_dencoder.cc b/src/test/encoding/ceph_dencoder.cc index 3875aaae00e34..c2bea68b266a0 100644 --- a/src/test/encoding/ceph_dencoder.cc +++ b/src/test/encoding/ceph_dencoder.cc @@ -142,9 +142,7 @@ public: i = m_list.size(); if ((i == 0) || (i > m_list.size())) return "invalid id for generated object"; - typename list::iterator p = m_list.begin(); - for (i--; i > 0 && p != m_list.end(); ++p, --i) ; - m_object = *p; + m_object = *(std::next(m_list.begin(), i-1)); return string(); } @@ -270,10 +268,8 @@ public: i = m_list.size(); if ((i == 0) || (i > m_list.size())) return "invalid id for generated object"; - typename list::iterator p = m_list.begin(); - for (i--; i > 0 && p != m_list.end(); ++p, --i) ; m_object->put(); - m_object = *p; + m_object = *(std::next(m_list.begin(), i-1)); return string(); } bool is_deterministic() override {