From: Willy Tarreau Date: Wed, 23 Jan 2013 23:37:39 +0000 (+0100) Subject: BUG/MEDIUM: checks: ensure the health_status is always within bounds X-Git-Tag: v1.5-dev18~119 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb95666bac94b6235eda431aba788644f7de7a3f;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: checks: ensure the health_status is always within bounds health_adjust() checks for incorrect bounds for the status argument. With current code, the argument is always a constant from the valid enum so there is no impact and the check is basically a NOP. However users running local patches (eg: new checks) might want to recheck their code. This fix should be backported to 1.4 which introduced the issue. Reported-by: Dinko Korunic --- diff --git a/src/checks.c b/src/checks.c index 6d527a328c..a933bba65f 100644 --- a/src/checks.c +++ b/src/checks.c @@ -619,7 +619,7 @@ void health_adjust(struct server *s, short status) if (s->observe >= HANA_OBS_SIZE) return; - if (status >= HCHK_STATUS_SIZE || !analyze_statuses[status].desc) + if (status >= HANA_STATUS_SIZE || !analyze_statuses[status].desc) return; switch (analyze_statuses[status].lr[s->observe - 1]) {