From 5d1331666d9d1d2aa5ec85a67106f71e69c2ddc6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 27 Jul 2008 19:05:49 +0200 Subject: fix iterative serialization of addrinfo data --- libasyncns/asyncns.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libasyncns/asyncns.c b/libasyncns/asyncns.c index 7d285b6..95e79f3 100644 --- a/libasyncns/asyncns.c +++ b/libasyncns/asyncns.c @@ -403,11 +403,10 @@ static int send_addrinfo_reply(int out_fd, unsigned id, int ret, struct addrinfo if (ret == 0 && ai) { void *p = data + 1; + struct addrinfo *k; - while (ai && p) { - p = serialize_addrinfo(p, ai, &resp->header.length, BUFSIZE); - ai = ai->ai_next; - } + for (k = ai; k && p; k = k->ai_next) + p = serialize_addrinfo(p, ai, &resp->header.length, (char*) data + BUFSIZE - (char*) p); } if (ai) -- cgit