]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd.cc: tolerate lack of NUL-termination on block_name_prefix
authorDan Mick <dan.mick@inktank.com>
Wed, 26 Mar 2014 00:09:48 +0000 (17:09 -0700)
committerSage Weil <sage@inktank.com>
Sat, 29 Mar 2014 00:56:35 +0000 (17:56 -0700)
Fixes: #7577
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/rbd.cc

index c6a3dcfef44cf8312c2040de6f836330214198ce..e62a1848d28c96e20cbabdaf08f7852d0180ef47 100644 (file)
@@ -521,6 +521,9 @@ static int do_show_info(const char *imgname, librbd::Image& image,
     f->dump_string("block_name_prefix", info.block_name_prefix);
     f->dump_int("format", (old_format ? 1 : 2));
   } else {
+    char prefix[RBD_MAX_BLOCK_NAME_SIZE + 1];
+    strncpy(prefix, info.block_name_prefix, RBD_MAX_BLOCK_NAME_SIZE);
+    prefix[RBD_MAX_BLOCK_NAME_SIZE] = '\0';
     cout << "rbd image '" << imgname << "':\n"
         << "\tsize " << prettybyte_t(info.size) << " in "
         << info.num_objs << " objects"
@@ -528,7 +531,7 @@ static int do_show_info(const char *imgname, librbd::Image& image,
         << "\torder " << info.order
         << " (" << prettybyte_t(info.obj_size) << " objects)"
         << std::endl
-        << "\tblock_name_prefix: " << info.block_name_prefix
+        << "\tblock_name_prefix: " << prefix
         << std::endl
         << "\tformat: " << (old_format ? "1" : "2")
         << std::endl;