]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
cmake: move librados.cc out of libradosstriper
authorKefu Chai <kchai@redhat.com>
Wed, 29 Jun 2016 06:47:52 +0000 (14:47 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 29 Jun 2016 14:26:25 +0000 (22:26 +0800)
commitc8fe1782a60990db51e20630883a9c9e11879573
tree8ccd1206f7e0b3639bc7dede9638b8fc4ed8e19c
parentbf5ccce9ad36d8dcb4506a2731d1c8e8b322c725
cmake: move librados.cc out of libradosstriper

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>
src/CMakeLists.txt
src/libradosstriper/CMakeLists.txt