From: Gui Hecheng Date: Tue, 7 Feb 2017 03:16:11 +0000 (+0800) Subject: librbd: fix segfault on EOPNOTSUPP returned while fetching snapshot timestamp X-Git-Tag: v12.0.1~456^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9a43a1205f1d69e1bc52bce791687d2ab6c01c2d;p=ceph.git librbd: fix segfault on EOPNOTSUPP returned while fetching snapshot timestamp Fixes: http://tracker.ceph.com/issues/18839 Signed-off-by: Gui Hecheng --- diff --git a/src/librbd/image/RefreshRequest.cc b/src/librbd/image/RefreshRequest.cc index 16a76def4e3b..dabd094c6e94 100644 --- a/src/librbd/image/RefreshRequest.cc +++ b/src/librbd/image/RefreshRequest.cc @@ -474,6 +474,7 @@ Context *RefreshRequest::handle_v2_get_snap_timestamps(int *result) { send_v2_get_mutable_metadata(); return nullptr; } else if (*result == -EOPNOTSUPP) { + m_snap_timestamps = std::vector(m_snap_names.size(), utime_t()); // Ignore it means no snap timestamps are available } else if (*result < 0) { lderr(cct) << "failed to retrieve snapshots: " << cpp_strerror(*result)