From cd2c1203d3725b5a4fc7e31b03a8021f635f0642 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Thu, 16 Aug 2012 02:01:34 +0200 Subject: [PATCH] dns_resolver: Fix addrinfo entries relocation --- .../kernel/network/dns_resolver/kernel_add_on/dns_resolver.cpp | 2 +- src/add-ons/kernel/network/dns_resolver/server/main.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/dns_resolver/kernel_add_on/dns_resolver.cpp b/src/add-ons/kernel/network/dns_resolver/kernel_add_on/dns_resolver.cpp index eb58f5a143..6c1e0c9872 100644 --- a/src/add-ons/kernel/network/dns_resolver/kernel_add_on/dns_resolver.cpp +++ b/src/add-ons/kernel/network/dns_resolver/kernel_add_on/dns_resolver.cpp @@ -94,7 +94,7 @@ dns_resolver_uninit() static void -RelocateEntries(struct addrinfo *addr) +RelocateEntries(struct addrinfo* addr) { char* generalOffset = reinterpret_cast(addr); diff --git a/src/add-ons/kernel/network/dns_resolver/server/main.cpp b/src/add-ons/kernel/network/dns_resolver/server/main.cpp index 0c816ca391..8082488f5a 100644 --- a/src/add-ons/kernel/network/dns_resolver/server/main.cpp +++ b/src/add-ons/kernel/network/dns_resolver/server/main.cpp @@ -94,7 +94,8 @@ GetAddrInfo(const char* buffer) } addrinfo* next = current->ai_next; - current->ai_next = reinterpret_cast(addrPos) + 1; + if (next != NULL) + current->ai_next = reinterpret_cast(addrPos) + 1; memcpy(reply + addrPos, current, sizeof(addrinfo)); addrPos += sizeof(addrinfo);