]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tools/cephfs-mirror: fix a dangling pointer 39594/head
authorRonen Friedman <rfriedma@redhat.com>
Sun, 21 Feb 2021 12:21:06 +0000 (14:21 +0200)
committerRonen Friedman <rfriedma@redhat.com>
Mon, 22 Feb 2021 06:22:56 +0000 (08:22 +0200)
stringify(snap_id) is ephemeral:

tools/cephfs_mirror/PeerReplayer.cc:916:62: warning: object backing the
pointer will be destroyed at the end of the full-expression

  snap_metadata snap_meta[] = {{PRIMARY_SNAP_ID_KEY.c_str(), stringify(snap_id).c_str()}};

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/tools/cephfs_mirror/PeerReplayer.cc

index 49c4cbef59fd521e18ad4aad91286416dea458fc..b0a90f69cfdf30a1090bb6ec2fa7502dd9379a04 100644 (file)
@@ -913,7 +913,8 @@ int PeerReplayer::synchronize(const std::string &dir_path, uint64_t snap_id,
     return r;
   }
 
-  snap_metadata snap_meta[] = {{PRIMARY_SNAP_ID_KEY.c_str(), stringify(snap_id).c_str()}};
+  auto snap_id_str{stringify(snap_id)};
+  snap_metadata snap_meta[] = {{PRIMARY_SNAP_ID_KEY.c_str(), snap_id_str.c_str()}};
   r = ceph_mksnap(m_remote_mount, dir_path.c_str(), snap_name.c_str(), 0755,
                   snap_meta, 1);
   if (r < 0) {