diff --git a/ldns-1.6.16-uninitialized-value-compiler-warnings.patch b/ldns-1.6.16-uninitialized-value-compiler-warnings.patch new file mode 100644 index 0000000..81cd9e1 --- /dev/null +++ b/ldns-1.6.16-uninitialized-value-compiler-warnings.patch @@ -0,0 +1,147 @@ +From ab321a4f77eba0048c4cfb1081ae2c8e3496f3fd Mon Sep 17 00:00:00 2001 +From: willem +Date: Tue, 12 Mar 2013 13:34:18 +0000 +Subject: [PATCH] - Uninitialized variable in securetrace.c - New install-sh + (apperantly :) - Get rid of "dereferencing type-punned pointer will break + strict-aliasing rules" warnings in sha2.c with gcc >= 4.7 + +git-svn-id: http://www.nlnetlabs.nl/svn/ldns@3826 af62348d-a3ea-0310-b058-bb613a78d823 +--- + trunk/drill/securetrace.c | 2 +- + trunk/install-sh | 14 +++++++------- + trunk/sha2.c | 15 ++++++++++++--- + 3 files changed, 20 insertions(+), 11 deletions(-) + +diff --git a/trunk/drill/securetrace.c b/trunk/drill/securetrace.c +index c6e7e58..9d61ec0 100644 +--- a/trunk/drill/securetrace.c ++++ b/trunk/drill/securetrace.c +@@ -138,7 +138,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t, + size_t j; + size_t k; + size_t l; +- uint8_t labels_count; ++ uint8_t labels_count = 0; + + /* dnssec */ + ldns_rr_list *key_list; +diff --git a/trunk/install-sh b/trunk/install-sh +index a9244eb..377bb86 100755 +--- a/trunk/install-sh ++++ b/trunk/install-sh +@@ -1,7 +1,7 @@ + #!/bin/sh + # install - install a program, script, or datafile + +-scriptversion=2011-01-19.21; # UTC ++scriptversion=2011-11-20.07; # UTC + + # This originates from X11R5 (mit/util/scripts/install.sh), which was + # later released in X11R6 (xc/config/util/install.sh) with the +@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC + # FSF changes to this file are in the public domain. + # + # Calling this script install-sh is preferred over install.sh, to prevent +-# `make' implicit rules from creating a file called install from it ++# 'make' implicit rules from creating a file called install from it + # when there is no Makefile. + # + # This script is compatible with the BSD install script, but was written +@@ -156,7 +156,7 @@ while test $# -ne 0; do + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 +- # Protect names problematic for `test' and other utilities. ++ # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac +@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + fi + shift # arg + dst_arg=$arg +- # Protect names problematic for `test' and other utilities. ++ # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac +@@ -202,7 +202,7 @@ if test $# -eq 0; then + echo "$0: no input file specified." >&2 + exit 1 + fi +- # It's OK to call `install-sh -d' without argument. ++ # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 + fi +@@ -240,7 +240,7 @@ fi + + for src + do +- # Protect names problematic for `test' and other utilities. ++ # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac +@@ -354,7 +354,7 @@ do + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or +- # other-writeable bit of parent directory when it shouldn't. ++ # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in +diff --git a/trunk/sha2.c b/trunk/sha2.c +index 6ba4ab5..9a27122 100644 +--- a/trunk/sha2.c ++++ b/trunk/sha2.c +@@ -546,9 +546,15 @@ void ldns_sha256_update(ldns_sha256_CTX* context, const sha2_byte *data, size_t + usedspace = freespace = 0; + } + ++typedef union _ldns_sha2_buffer_union { ++ uint8_t* theChars; ++ uint64_t* theLongs; ++} ldns_sha2_buffer_union; ++ + void ldns_sha256_final(sha2_byte digest[], ldns_sha256_CTX* context) { + sha2_word32 *d = (sha2_word32*)digest; + size_t usedspace; ++ ldns_sha2_buffer_union cast_var; + + /* Sanity check: */ + assert(context != (ldns_sha256_CTX*)0); +@@ -585,7 +591,8 @@ void ldns_sha256_final(sha2_byte digest[], ldns_sha256_CTX* context) { + *context->buffer = 0x80; + } + /* Set the bit count: */ +- *(sha2_word64*)&context->buffer[ldns_sha256_SHORT_BLOCK_LENGTH] = context->bitcount; ++ cast_var.theChars = context->buffer; ++ cast_var.theLongs[ldns_sha256_SHORT_BLOCK_LENGTH / 8] = context->bitcount; + + /* final transform: */ + ldns_sha256_Transform(context, (sha2_word32*)context->buffer); +@@ -850,6 +857,7 @@ void ldns_sha512_update(ldns_sha512_CTX* context, const sha2_byte *data, size_t + + static void ldns_sha512_Last(ldns_sha512_CTX* context) { + size_t usedspace; ++ ldns_sha2_buffer_union cast_var; + + usedspace = (context->bitcount[0] >> 3) % LDNS_SHA512_BLOCK_LENGTH; + #if BYTE_ORDER == LITTLE_ENDIAN +@@ -882,8 +890,9 @@ static void ldns_sha512_Last(ldns_sha512_CTX* context) { + *context->buffer = 0x80; + } + /* Store the length of input data (in bits): */ +- *(sha2_word64*)&context->buffer[ldns_sha512_SHORT_BLOCK_LENGTH] = context->bitcount[1]; +- *(sha2_word64*)&context->buffer[ldns_sha512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0]; ++ cast_var.theChars = context->buffer; ++ cast_var.theLongs[ldns_sha512_SHORT_BLOCK_LENGTH / 8] = context->bitcount[1]; ++ cast_var.theLongs[ldns_sha512_SHORT_BLOCK_LENGTH / 8 + 1] = context->bitcount[0]; + + /* final transform: */ + ldns_sha512_Transform(context, (sha2_word64*)context->buffer); +-- +1.8.3.1 + diff --git a/ldns.spec b/ldns.spec index c30bc85..96172f3 100644 --- a/ldns.spec +++ b/ldns.spec @@ -8,10 +8,11 @@ Summary: Low-level DNS(SEC) library with API Name: ldns Version: 1.6.16 -Release: 4%{?dist} +Release: 5%{?dist} License: BSD Url: http://www.nlnetlabs.nl/%{name}/ Source: http://www.nlnetlabs.nl/downloads/%{name}/%{name}-%{version}.tar.gz +Patch0: %{name}-1.6.16-uninitialized-value-compiler-warnings.patch Group: System Environment/Libraries BuildRequires: perl, libpcap-devel, openssl-devel, gcc-c++, doxygen, # for snapshots only @@ -56,6 +57,7 @@ This package contains documentation for the ldns library %prep %setup -q +%patch0 -p2 # To built svn snapshots # rm config.guess config.sub ltmain.sh # aclocal @@ -140,6 +142,9 @@ rm -rf %{buildroot} %postun -p /sbin/ldconfig %changelog +* Fri Jul 19 2013 Tomas Hozza - 1.6.16-5 +- Fix compiler warnings and one uninitialized value + * Mon Jun 03 2013 Paul Wouters - 1.6.16-4 - Use /var/lib/unbound/root.key for --with-trust-anchor