From 0687cb9d9932e3ff3e04082a024a7ae5859ea0a7 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Mon, 21 May 2007 13:48:14 +0000 Subject: [PATCH] fix worker endless loop on 64-bit platform if 33+ backend has fall --- src/http/ngx_http_upstream_round_robin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c index 359a73624..b54e7a72d 100644 --- a/src/http/ngx_http_upstream_round_robin.c +++ b/src/http/ngx_http_upstream_round_robin.c @@ -215,7 +215,7 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data) rrp->current = rrp->peers->current; n = rrp->current / (8 * sizeof(uintptr_t)); - m = 1 << rrp->current % (8 * sizeof(uintptr_t)); + m = (uintptr_t) 1 << rrp->current % (8 * sizeof(uintptr_t)); if (!(rrp->tried[n] & m)) { peer = &rrp->peers->peer[rrp->current]; @@ -268,7 +268,7 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data) } else { for ( ;; ) { n = rrp->current / (8 * sizeof(uintptr_t)); - m = 1 << rrp->current % (8 * sizeof(uintptr_t)); + m = (uintptr_t) 1 << rrp->current % (8 * sizeof(uintptr_t)); if (!(rrp->tried[n] & m)) {