You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2018/05/09 09:08:12 UTC

[trafficserver] branch master updated: Fixed off-by-one error in select_best_srv.

This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new aa97de6  Fixed off-by-one error in select_best_srv.
aa97de6 is described below

commit aa97de6162ac53f733c1e7a97fcb2350779d6ed8
Author: Chris Lemmons <al...@gmail.com>
AuthorDate: Tue May 8 15:54:42 2018 +0000

    Fixed off-by-one error in select_best_srv.
    
    This error may never actually occur, it was reported by clang-analyzer. This
    just ensures that in no case does the loop run one past the end of the array.
---
 iocore/hostdb/P_HostDBProcessor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/iocore/hostdb/P_HostDBProcessor.h b/iocore/hostdb/P_HostDBProcessor.h
index 40bcdeb..ab84309 100644
--- a/iocore/hostdb/P_HostDBProcessor.h
+++ b/iocore/hostdb/P_HostDBProcessor.h
@@ -374,7 +374,7 @@ HostDBRoundRobin::select_best_srv(char *target, InkRand *rand, ink_time_t now, i
     result = &info(current++ % len);
   } else {
     uint32_t xx = rand->random() % weight;
-    for (i = 0; i < len && xx >= infos[i]->data.srv.srv_weight; ++i)
+    for (i = 0; i < len - 1 && xx >= infos[i]->data.srv.srv_weight; ++i)
       xx -= infos[i]->data.srv.srv_weight;
 
     result = infos[i];

-- 
To stop receiving notification emails like this one, please contact
zwoop@apache.org.