src/http/modules/ngx_http_upstream_ip_hash_module.c:244: error: Uninitialized Value
  The value read from peer was never initialized.

src/http/modules/ngx_http_upstream_ip_hash_module.c:244:5: 
242.     }
243. 
244.     iphp->rrp.current = peer;
         ^
245. 
246.     pc->sockaddr = peer->sockaddr;

static ngx_int_t
ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
{
    ngx_http_upstream_ip_hash_peer_data_t  *iphp = data;
    time_t                        now;
    ngx_int_t                     w;
    uintptr_t                     m;
    ngx_uint_t                    i, n, p, hash;
    ngx_http_upstream_rr_peer_t  *peer;
    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
                   "get ip hash peer, try: %ui", pc->tries);
    ngx_http_upstream_rr_peers_wlock(iphp->rrp.peers);
    if (iphp->tries > 20 || iphp->rrp.peers->single) {
        ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);
        return iphp->get_rr_peer(pc, &iphp->rrp);
    }
    now = ngx_time();
    pc->cached = 0;
    pc->connection = NULL;
    hash = iphp->hash;
    for ( ;; ) {
        for (i = 0; i < (ngx_uint_t) iphp->addrlen; i++) {
            hash = (hash * 113 + iphp->addr[i]) % 6271;
        }
        if (!iphp->rrp.peers->weighted) {
            p = hash % iphp->rrp.peers->number;
            peer = iphp->rrp.peers->peer;
            for (i = 0; i < p; i++) {
                peer = peer->next;
            }
        } else {
            w = hash % iphp->rrp.peers->total_weight;
            for (peer = iphp->rrp.peers->peer, i = 0;
                 peer;
                 peer = peer->next, i++)
            {
                w -= peer->weight;
                if (w < 0) {
                    break;
                }
            }
            p = i;
        }
        n = p / (8 * sizeof(uintptr_t));
        m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t));
        if (iphp->rrp.tried[n] & m) {
            goto next;
        }
        ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0,
                       "get ip hash peer, hash: %ui %04XA", p, m);
        if (peer->down) {
            goto next_try;
        }
        if (peer->max_fails
            && peer->fails >= peer->max_fails
            && now - peer->checked <= peer->fail_timeout)
        {
            goto next_try;
        }
        break;
    next_try:
        iphp->rrp.tried[n] |= m;
        pc->tries--;
    next:
        if (++iphp->tries > 20) {
            ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);
            return iphp->get_rr_peer(pc, &iphp->rrp);
        }
    }
    iphp->rrp.current = peer;
    pc->sockaddr = peer->sockaddr;
    pc->socklen = peer->socklen;
    pc->name = &peer->name;
    peer->conns++;
    if (now - peer->checked > peer->fail_timeout) {
        peer->checked = now;
    }
    ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);
    iphp->rrp.tried[n] |= m;
    iphp->hash = hash;
    return NGX_OK;
}
['static ngx_int_t\nngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)\n{\n    ngx_http_upstream_ip_hash_peer_data_t  *iphp = data;\n    time_t                        now;\n    ngx_int_t                     w;\n    uintptr_t                     m;\n    ngx_uint_t                    i, n, p, hash;\n    ngx_http_upstream_rr_peer_t  *peer;\n    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,\n                   "get ip hash peer, try: %ui", pc->tries);\n    ngx_http_upstream_rr_peers_wlock(iphp->rrp.peers);\n    if (iphp->tries > 20 || iphp->rrp.peers->single) {\n        ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);\n        return iphp->get_rr_peer(pc, &iphp->rrp);\n    }\n    now = ngx_time();\n    pc->cached = 0;\n    pc->connection = NULL;\n    hash = iphp->hash;\n    for ( ;; ) {\n        for (i = 0; i < (ngx_uint_t) iphp->addrlen; i++) {\n            hash = (hash * 113 + iphp->addr[i]) % 6271;\n        }\n        if (!iphp->rrp.peers->weighted) {\n            p = hash % iphp->rrp.peers->number;\n            peer = iphp->rrp.peers->peer;\n            for (i = 0; i < p; i++) {\n                peer = peer->next;\n            }\n        } else {\n            w = hash % iphp->rrp.peers->total_weight;\n            for (peer = iphp->rrp.peers->peer, i = 0;\n                 peer;\n                 peer = peer->next, i++)\n            {\n                w -= peer->weight;\n                if (w < 0) {\n                    break;\n                }\n            }\n            p = i;\n        }\n        n = p / (8 * sizeof(uintptr_t));\n        m = (uintptr_t) 1 << p % (8 * sizeof(uintptr_t));\n        if (iphp->rrp.tried[n] & m) {\n            goto next;\n        }\n        ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0,\n                       "get ip hash peer, hash: %ui %04XA", p, m);\n        if (peer->down) {\n            goto next_try;\n        }\n        if (peer->max_fails\n            && peer->fails >= peer->max_fails\n            && now - peer->checked <= peer->fail_timeout)\n        {\n            goto next_try;\n        }\n        break;\n    next_try:\n        iphp->rrp.tried[n] |= m;\n        pc->tries--;\n    next:\n        if (++iphp->tries > 20) {\n            ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);\n            return iphp->get_rr_peer(pc, &iphp->rrp);\n        }\n    }\n    iphp->rrp.current = peer;\n    pc->sockaddr = peer->sockaddr;\n    pc->socklen = peer->socklen;\n    pc->name = &peer->name;\n    peer->conns++;\n    if (now - peer->checked > peer->fail_timeout) {\n        peer->checked = now;\n    }\n    ngx_http_upstream_rr_peers_unlock(iphp->rrp.peers);\n    iphp->rrp.tried[n] |= m;\n    iphp->hash = hash;\n    return NGX_OK;\n}']