freeaddrinfo: rewrite as iterative
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 22 Nov 2014 09:20:24 +0000 (11:20 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 22 Nov 2014 09:20:24 +0000 (11:20 +0200)
compat/freeaddrinfo.c

index 0d5a1d8..fecc3fa 100644 (file)
  */
 void freeaddrinfo (struct addrinfo *res)
 {
-    if (res == NULL)
-        return;
+    while (res != NULL)
+    {
+        struct addrinfo *next = res->ai_next;
 
-    freeaddrinfo (res->ai_next);
-
-    free (res->ai_canonname);
-    free (res->ai_addr);
-    free (res);
+        free (res->ai_canonname);
+        free (res->ai_addr);
+        free (res);
+        res = next;
+    }
 }