<div dir="ltr"><div dir="ltr"><div dir="ltr"><div># HG changeset patch</div><div># User 乔志奇@Matebook-Qiao <<a href="mailto:qiaozhiqi2016@gmail.com">qiaozhiqi2016@gmail.com</a>></div><div># Date 1671521412 -28800</div><div>#      Tue Dec 20 15:30:12 2022 +0800</div><div># Branch nginx-bugfix-crash</div><div># Node ID 992013158c8970318c20e2e3294dbc9311bb20c8</div><div># Parent  3108d4d668e4b907868b815f0441d4c893bf4188</div><div>Fixed crash protection in round robin</div><div><br></div><div>When all servers in the upstream are in the down state, rrp->peers will be NULL, initialization will crash here, and protection is needed.<br></div><div><br></div><div>diff -r 3108d4d668e4 -r 992013158c89 src/http/ngx_http_upstream_round_robin.c</div><div>--- a/src/http/ngx_http_upstream_round_robin.c  Fri Dec 16 01:15:15 2022 +0400</div><div>+++ b/src/http/ngx_http_upstream_round_robin.c  Tue Dec 20 15:30:12 2022 +0800</div><div>@@ -275,6 +275,10 @@</div><div>     rrp->current = NULL;</div><div>     rrp->config = 0;</div><div><br></div><div>+    if (rrp->peers == NULL) {</div><div>+        return NGX_ERROR;</div><div>+    }</div><div>+</div><div>     n = rrp->peers->number;</div><div><br></div><div>     if (rrp->peers->next && rrp->peers->next->number > n) {</div><div><br></div></div></div></div>