diff --git a/src/policy_eppfrd.cpp b/src/policy_eppfrd.cpp index d2ba449c..9c56fa68 100644 --- a/src/policy_eppfrd.cpp +++ b/src/policy_eppfrd.cpp @@ -155,6 +155,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 baa1bd95..ea6d770f 100644 --- a/src/policy_msppfrd.cpp +++ b/src/policy_msppfrd.cpp @@ -114,6 +114,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 2862d3ca..45d03051 100644 --- a/src/policy_pfrd.cpp +++ b/src/policy_pfrd.cpp @@ -84,6 +84,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++)