]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: Division by zero in Legacy::encode_n() 15902/head
authorJos Collin <jcollin@redhat.com>
Sat, 24 Jun 2017 15:29:43 +0000 (20:59 +0530)
committerJos Collin <jcollin@redhat.com>
Sun, 25 Jun 2017 06:17:41 +0000 (11:47 +0530)
Fixes the Coverity Scan Report:
CID 1411820 (#1 of 1): Division or modulo by zero (DIVIDE_BY_ZERO)
9. divide_by_zero: In expression bl.length() * i / sum, division by expression sum which may be zero has undefined behavior.

Signed-off-by: Jos Collin <jcollin@redhat.com>
src/test/test_denc.cc

index fea7e987eebc2322460c25439c80dec974852ff2..6a7c4a2defee07a91c50e05b844616353acf84a7 100644 (file)
@@ -613,6 +613,7 @@ bufferlist Legacy::encode_n(unsigned n, const vector<unsigned>& segments) {
   auto p = bl.begin();
 
   auto sum = std::accumulate(segments.begin(), segments.end(), 0u);
+  assert(sum != 0u);
   for (auto i : segments) {
     buffer::ptr seg;
     p.copy_deep(bl.length() * i / sum, seg);