File 0002-ares_getnameinfo-fix-random-results-with-c-ares-1.7..patch of Package libcares2

From a529199abfceae2f6a813616ced29b23d911d91e Mon Sep 17 00:00:00 2001
From: Denis Bilenko <denis.bilenko@gmail.com>
Date: Wed, 24 Aug 2011 18:37:11 +0200
Subject: [PATCH 2/3] ares_getnameinfo: fix random results with c-ares 1.7.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In ares_getnameinfo memcpy did not copy enough bytes, causing
it to return arbitrary memory contents as a result.

Signed-off-by: Cristian Rodríguez <crrodriguez@opensuse.org>
---
 ares_getnameinfo.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ares_getnameinfo.c b/ares_getnameinfo.c
index 82e261d..cdcd516 100644
--- a/ares_getnameinfo.c
+++ b/ares_getnameinfo.c
@@ -188,7 +188,7 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
         if (sa->sa_family == AF_INET)
           {
             niquery->family = AF_INET;
-            memcpy(&niquery->addr.addr4, addr, sizeof(struct in_addr));
+            memcpy(&niquery->addr.addr4, addr, sizeof(niquery->addr.addr4));
             ares_gethostbyaddr(channel, &addr->sin_addr,
                                sizeof(struct in_addr), AF_INET,
                                nameinfo_callback, niquery);
@@ -196,7 +196,7 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
         else
           {
             niquery->family = AF_INET6;
-            memcpy(&niquery->addr.addr6, addr6, sizeof(struct ares_in6_addr));
+            memcpy(&niquery->addr.addr6, addr6, sizeof(niquery->addr.addr6));
             ares_gethostbyaddr(channel, &addr6->sin6_addr,
                                sizeof(struct ares_in6_addr), AF_INET6,
                                nameinfo_callback, niquery);
-- 
1.7.4.1

openSUSE Build Service is sponsored by