]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: fix bounds of memcpy in info()
authorJosh Durgin <josh.durgin@inktank.com>
Wed, 1 Aug 2012 22:42:15 +0000 (15:42 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Sat, 4 Aug 2012 01:49:48 +0000 (18:49 -0700)
Caught by valgrind.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
src/librbd/internal.cc

index 987e916060fbd722184da82769b80d421e9e4ff9..f4cec359fef71730d1222e5bca554c94a22c19ea 100644 (file)
@@ -108,7 +108,7 @@ namespace librbd {
     info.num_objs = howmany(info.size, get_block_size(obj_order));
     info.order = obj_order;
     memcpy(&info.block_name_prefix, ictx->object_prefix.c_str(),
-          RBD_MAX_BLOCK_NAME_SIZE);
+          min((size_t)RBD_MAX_BLOCK_NAME_SIZE, ictx->object_prefix.length()));
     // clear deprecated fields
     info.parent_pool = -1L;
     info.parent_name[0] = '\0';