From: xiexingguo <258156334@qq.com> Date: Sat, 5 Dec 2015 02:11:59 +0000 (+0800) Subject: tools: fix pool alignment API overflow issue X-Git-Tag: v10.0.4~193^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f021f5a4f3697cdd7a6a29fb84f72d518a208106;p=ceph.git tools: fix pool alignment API overflow issue The original APIs may overflow and are replaced by 1f855456cae96c91a67c169d2333e333c3b59671. Signed-off-by: xie xingguo --- diff --git a/src/tools/rados/RadosImport.cc b/src/tools/rados/RadosImport.cc index b4b397b1d9c4..4f72142d6576 100644 --- a/src/tools/rados/RadosImport.cc +++ b/src/tools/rados/RadosImport.cc @@ -243,8 +243,22 @@ int RadosImport::get_object_rados(librados::IoCtx &ioctx, bufferlist &bl, bool n need_align = true; alignment = align; } else { - if ((need_align = ioctx.pool_requires_alignment())) - alignment = ioctx.pool_required_alignment(); + int ret = ioctx.pool_requires_alignment2(&need_align); + if (ret < 0) { + cerr << "pool_requires_alignment2 failed: " << cpp_strerror(ret) + << std::endl; + return ret; + } + + if (need_align) { + ret = ioctx.pool_required_alignment2(&alignment); + if (ret < 0) { + cerr << "pool_required_alignment2 failed: " << cpp_strerror(ret) + << std::endl; + return ret; + } + assert(alignment != 0); + } } if (need_align) {