[c-ares/f15/master] Fix rhbz#695424

Jakub Hrozek jhrozek at fedoraproject.org
Mon Apr 11 19:12:23 UTC 2011


commit 8e116969d65687d2a89205c4862c45db739f1991
Author: Jakub Hrozek <jhrozek at redhat.com>
Date:   Mon Apr 11 21:04:54 2011 +0200

    Fix rhbz#695424

 c-ares.spec                          |    7 ++++-
 cleanup-avoid-unsafe-typecasts.patch |   56 ++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+), 1 deletions(-)
---
diff --git a/c-ares.spec b/c-ares.spec
index 2d70e0e..e8c734a 100644
--- a/c-ares.spec
+++ b/c-ares.spec
@@ -1,7 +1,7 @@
 Summary: A library that performs asynchronous DNS operations
 Name: c-ares
 Version: 1.7.4
-Release: 2%{?dist}
+Release: 3%{?dist}
 License: MIT
 Group: System Environment/Libraries
 URL: http://c-ares.haxx.se/
@@ -9,6 +9,7 @@ Source0: http://c-ares.haxx.se/c-ares-%{version}.tar.gz
 Source1: LICENSE
 Patch0: %{name}-1.7.0-optflags.patch
 Patch1: c-ares-multilib.patch
+Patch2: cleanup-avoid-unsafe-typecasts.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -31,6 +32,7 @@ compile applications or shared objects that use c-ares.
 %setup -q
 %patch0 -p1 -b .optflags
 %patch1 -p1 -b .multilib
+%patch2 -p1 -b .typecasts
 cp %{SOURCE1} .
 f=CHANGES ; iconv -f iso-8859-1 -t utf-8 $f -o $f.utf8 ; mv $f.utf8 $f
 
@@ -67,6 +69,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man3/ares_*
 
 %changelog
+* Mon Apr 11 2011 Jakub Hrozek <jhrozek at redhat.com> - 1.7.4-3
+- Apply upstream patch to fix rhbz#695424
+
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.7.4-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
diff --git a/cleanup-avoid-unsafe-typecasts.patch b/cleanup-avoid-unsafe-typecasts.patch
new file mode 100644
index 0000000..ec6b5a6
--- /dev/null
+++ b/cleanup-avoid-unsafe-typecasts.patch
@@ -0,0 +1,56 @@
+From 2d5ed6400ba430f412ebc9748eb847771907776d Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel at haxx.se>
+Date: Sat, 18 Dec 2010 22:20:16 +0100
+Subject: [PATCH] cleanup: avoid unsafe typecasts
+
+Avoid the risk of reading 16bit data from an unaligned address by using
+a macro that is adapted for this.
+---
+ ares_parse_mx_reply.c  |    4 ++--
+ ares_parse_srv_reply.c |    6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/ares_parse_mx_reply.c b/ares_parse_mx_reply.c
+index 186ddd3..2180054 100644
+--- a/ares_parse_mx_reply.c
++++ b/ares_parse_mx_reply.c
+@@ -47,7 +47,7 @@
+ 
+ int
+ ares_parse_mx_reply (const unsigned char *abuf, int alen,
+-                      struct ares_mx_reply **mx_out)
++                     struct ares_mx_reply **mx_out)
+ {
+   unsigned int qdcount, ancount, i;
+   const unsigned char *aptr, *vptr;
+@@ -134,7 +134,7 @@ ares_parse_mx_reply (const unsigned char *abuf, int alen,
+           mx_last = mx_curr;
+ 
+           vptr = aptr;
+-          mx_curr->priority = ntohs (*((unsigned short *)vptr));
++          mx_curr->priority = DNS__16BIT(vptr);
+           vptr += sizeof(unsigned short);
+ 
+           status = ares_expand_name (vptr, abuf, alen, &mx_curr->host, &len);
+diff --git a/ares_parse_srv_reply.c b/ares_parse_srv_reply.c
+index 7d443b3..9c7eb6e 100644
+--- a/ares_parse_srv_reply.c
++++ b/ares_parse_srv_reply.c
+@@ -139,11 +139,11 @@ ares_parse_srv_reply (const unsigned char *abuf, int alen,
+           srv_last = srv_curr;
+ 
+           vptr = aptr;
+-          srv_curr->priority = ntohs (*((unsigned short *)vptr));
++          srv_curr->priority = DNS__16BIT(vptr);
+           vptr += sizeof(unsigned short);
+-          srv_curr->weight = ntohs (*((unsigned short *)vptr));
++          srv_curr->weight = DNS__16BIT(vptr);
+           vptr += sizeof(unsigned short);
+-          srv_curr->port = ntohs (*((unsigned short *)vptr));
++          srv_curr->port = DNS__16BIT(vptr);
+           vptr += sizeof(unsigned short);
+ 
+           status = ares_expand_name (vptr, abuf, alen, &srv_curr->host, &len);
+-- 
+1.7.4.2
+


More information about the scm-commits mailing list