]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSDMonitor.cc: fix potential division by zero 2396/head
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 4 Sep 2014 14:09:01 +0000 (16:09 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 4 Sep 2014 14:09:01 +0000 (16:09 +0200)
Fix for:

CID 1232602 (#1 of 1): Division or modulo by zero (DIVIDE_BY_ZERO)
 divide_by_zero: In expression num_pg_copies / num_osds, division
 by expression num_osds which may be zero has undefined behavior.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/mon/OSDMonitor.cc

index c62c596f74b755e3a1ca32b2b16799e58e331f7d..25a5bc7fc05cf612a65a395014d572bb8e309ec0 100644 (file)
@@ -485,7 +485,7 @@ int OSDMonitor::reweight_by_utilization(int oload, std::string& out_str,
       }
     }
 
-    if (num_pg_copies / num_osds < g_conf->mon_reweight_min_pgs_per_osd) {
+    if (!num_osds || (num_pg_copies / num_osds < g_conf->mon_reweight_min_pgs_per_osd)) {
       ostringstream oss;
       oss << "Refusing to reweight: we only have " << num_pg_copies
          << " PGs across " << num_osds << " osds!\n";