]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd.cc: Check io-size avoid floating point exception.
authorMa, Jianpeng <jianpeng.ma@intel.com>
Thu, 12 Jun 2014 08:15:17 +0000 (08:15 +0000)
committerJosh Durgin <josh.durgin@inktank.com>
Fri, 11 Jul 2014 00:59:18 +0000 (17:59 -0700)
In func do_bench_write if io_size is zero,it can cause floating point execption.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
src/rbd.cc

index d6658e33cc95bb7f3422d19dd1f737c192cf7683..c068ed68aa21c73faff1cda98658b921cbb08878 100644 (file)
@@ -2038,6 +2038,14 @@ int main(int argc, const char **argv)
        return EXIT_FAILURE;
       }
     } else if (ceph_argparse_withlonglong(args, i, &bench_io_size, &err, "--io-size", (char*)NULL)) {
+      if (!err.str().empty()) {
+       cerr << "rbd: " << err.str() << std::endl;
+       return EXIT_FAILURE;
+      }
+      if (bench_io_size == 0) {
+       cerr << "rbd: io-size must be > 0" << std::endl;
+       return EXIT_FAILURE;
+      }
     } else if (ceph_argparse_withlonglong(args, i, &bench_io_threads, &err, "--io-threads", (char*)NULL)) {
     } else if (ceph_argparse_withlonglong(args, i, &bench_bytes, &err, "--io-total", (char*)NULL)) {
     } else if (ceph_argparse_witharg(args, i, &bench_pattern, &err, "--io-pattern", (char*)NULL)) {