]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: resolvers: Perform unsafe loop on requester list when possible
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 11 Mar 2021 17:19:41 +0000 (18:19 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 12 Mar 2021 16:42:47 +0000 (17:42 +0100)
When answer list of a response is checked, it is useless to perform a safe
loop on the requester list.

src/resolvers.c

index 2d79725b752725843c2a062b512474411326baee..f3564927fe64545e581fedfd0624455bcf4b428e 100644 (file)
@@ -573,7 +573,7 @@ int resolv_read_name(unsigned char *buffer, unsigned char *bufend,
 static void resolv_check_response(struct resolv_resolution *res)
 {
        struct resolvers   *resolvers = res->resolvers;
-       struct resolv_requester   *req, *reqback;
+       struct resolv_requester   *req;
        struct resolv_answer_item *item, *itemback;
        struct server          *srv;
        struct resolv_srvrq       *srvrq;
@@ -595,7 +595,7 @@ static void resolv_check_response(struct resolv_resolution *res)
                        if (item->type != DNS_RTYPE_SRV)
                                goto rm_obselete_item;
 
-                       list_for_each_entry_safe(req, reqback, &res->requesters, list) {
+                       list_for_each_entry(req, &res->requesters, list) {
                                if ((srvrq = objt_resolv_srvrq(req->owner)) == NULL)
                                        continue;
 
@@ -631,7 +631,7 @@ static void resolv_check_response(struct resolv_resolution *res)
                        continue;
 
                /* Now process SRV records */
-               list_for_each_entry_safe(req, reqback, &res->requesters, list) {
+               list_for_each_entry(req, &res->requesters, list) {
                        if ((srvrq = objt_resolv_srvrq(req->owner)) == NULL)
                                continue;