]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crush/CrushWrapper: behave with empty weight vector 32905/head
authorKefu Chai <kchai@redhat.com>
Thu, 16 Jan 2020 07:49:58 +0000 (15:49 +0800)
committerNathan Cutler <ncutler@suse.com>
Mon, 27 Jan 2020 15:23:24 +0000 (16:23 +0100)
should not dereference an empty vector.

Fixes: https://tracker.ceph.com/issues/43404
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 7c1964f5d9ad466229134e0322090ba8081f8e35)

src/crush/CrushWrapper.h

index 1796ef69896e542965cc5f778ddca6302618f4a0..9dffe69c8a228a1fc0e0cd9381a12487fafd1c28 100644 (file)
@@ -1566,8 +1566,9 @@ public:
     crush_init_workspace(crush, work);
     crush_choose_arg_map arg_map = choose_args_get_with_fallback(
       choose_args_index);
-    int numrep = crush_do_rule(crush, rule, x, rawout, maxout, &weight[0],
-                              weight.size(), work, arg_map.args);
+    int numrep = crush_do_rule(crush, rule, x, rawout, maxout,
+                              std::data(weight), std::size(weight),
+                              work, arg_map.args);
     if (numrep < 0)
       numrep = 0;
     out.resize(numrep);