From: Sage Weil Date: Fri, 28 Sep 2012 13:45:06 +0000 (-0700) Subject: PrebufferedStream: avoid dereferencing end() X-Git-Tag: v0.54~187^2~28 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=af5f143736c083ce8f61b5c038300eb1fbaadcad;p=ceph.git PrebufferedStream: avoid dereferencing end() This appeared to work, but probably isn't a good idea. CID 716940: Using invalid iterator (INVALIDATE_ITERATOR) At (4): Dereferencing iterator "this->m_overflow.end()" though it is already past the end of its container. Signed-off-by: Sage Weil --- diff --git a/src/common/PrebufferedStreambuf.cc b/src/common/PrebufferedStreambuf.cc index 600b3fd3c369..d6db8bbe0af2 100644 --- a/src/common/PrebufferedStreambuf.cc +++ b/src/common/PrebufferedStreambuf.cc @@ -20,7 +20,7 @@ PrebufferedStreambuf::int_type PrebufferedStreambuf::overflow(int_type c) m_overflow.resize(old_len * 2); } m_overflow[old_len] = c; - this->setp(&m_overflow[old_len + 1], &*m_overflow.end()); + this->setp(&m_overflow[old_len + 1], &*m_overflow.begin() + m_overflow.size()); return std::char_traits::not_eof(c); }