diff --git a/src/policy_eppfrd.cpp b/src/policy_eppfrd.cpp index 2c38efc2..e16780d6 100644 --- a/src/policy_eppfrd.cpp +++ b/src/policy_eppfrd.cpp @@ -204,6 +204,9 @@ namespace eppfrd uint64_t idx; uint64_t threshold; + if(sum_ == 0) + return NULL; + idx = 0; threshold = RND::rand64(sum_); for(size_t i = 0; i < branchinfo_.size(); i++) diff --git a/src/policy_msppfrd.cpp b/src/policy_msppfrd.cpp index dd4f8931..cc95bca4 100644 --- a/src/policy_msppfrd.cpp +++ b/src/policy_msppfrd.cpp @@ -130,6 +130,9 @@ namespace msppfrd uint64_t idx; uint64_t threshold; + if(sum_ == 0) + return NULL; + idx = 0; threshold = RND::rand64(sum_); for(size_t i = 0; i < branchinfo_.size(); i++) diff --git a/src/policy_pfrd.cpp b/src/policy_pfrd.cpp index ab22e278..0ecf880b 100644 --- a/src/policy_pfrd.cpp +++ b/src/policy_pfrd.cpp @@ -98,6 +98,9 @@ namespace pfrd uint64_t idx; uint64_t threshold; + if(sum_ == 0) + return NULL; + idx = 0; threshold = RND::rand64(sum_); for(size_t i = 0; i < branchinfo_.size(); i++)