mirror of
https://github.com/ceph/ceph
synced 2024-12-18 01:16:55 +00:00
c8fe1782a6
NObjectIterator::__EndObjectIterator is a static member variable whose destructor deletes a pointer. librados.cc is the source file that defines __EndObjectIterator. before this change rados cli is linked against libradosstriper and librados. both of them include librados.cc. that's why the dtor is called twice, hence double free when the dso is closed and the static variables are destructed. in this change, the librados.cc is moved out of libradosstriper, RadosClient.cc, RadosXattrIter.cc and IoCtxImpl.cc kept as the OBJECT library, as libradostriper is accessing the non-public symbols defined by them. Fixes: http://tracker.ceph.com/issues/16504 Signed-off-by: Kefu Chai <kchai@redhat.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
libradosstriper.cc | ||
Makefile.am | ||
MultiAioCompletionImpl.cc | ||
MultiAioCompletionImpl.h | ||
RadosStriperImpl.cc | ||
RadosStriperImpl.h |