From patchwork Mon Oct 22 16:05:46 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 1626701 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id A79C9DFB79 for ; Mon, 22 Oct 2012 16:05:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755282Ab2JVQFt (ORCPT ); Mon, 22 Oct 2012 12:05:49 -0400 Received: from mail-ie0-f174.google.com ([209.85.223.174]:60605 "EHLO mail-ie0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755157Ab2JVQFs (ORCPT ); Mon, 22 Oct 2012 12:05:48 -0400 Received: by mail-ie0-f174.google.com with SMTP id k13so3828544iea.19 for ; Mon, 22 Oct 2012 09:05:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:subject:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=NpDjbyQeeJlWzYjJmQD4YxKbGsshtkUPpv9IoZpcPQQ=; b=EAccNvJeXHcTAv2/Knl9s/t+20H2ylt3k1/EIr55oHhWutGGyKdsfup8xV3snhWqTh ehzgqrryTDX3Nkz0J6n5/ssmr2FjBPnr1eCSRcEHmq2ZHmLnAJANZAxTM9IA2NZ+zRcd Jjz6et9a22Av7ZGGtdrQdaNEs1hbR1vhF1myOPRF3lTWQhLpLMZI28m2sXrsXjNDMXxN JBZGb7j8W7H/Zkwtej/m5mZFq2/AzTn6ZackazFcxMNQHqTFBf6fDYu7s2MG1/0fSGOx q+QeLHOip9VsY8/vUp7vYqu3M+VrqqOfVVocyqlptVySFmusCFpE7KpLIOpivFS6VIXu mJNw== Received: by 10.42.97.74 with SMTP id m10mr8038315icn.42.1350921948156; Mon, 22 Oct 2012 09:05:48 -0700 (PDT) Received: from lebasque.1015granger.net (adsl-99-26-161-222.dsl.sfldmi.sbcglobal.net. [99.26.161.222]) by mx.google.com with ESMTPS id us4sm22781305igc.9.2012.10.22.09.05.46 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 22 Oct 2012 09:05:47 -0700 (PDT) From: Chuck Lever Subject: [PATCH 01/10] nfs-utils: Eliminate dereferencing type punned pointers To: steved@redhat.com Cc: linux-nfs@vger.kernel.org Date: Mon, 22 Oct 2012 12:05:46 -0400 Message-ID: <20121022160546.4552.81486.stgit@lebasque.1015granger.net> In-Reply-To: <20121022160140.4552.34477.stgit@lebasque.1015granger.net> References: <20121022160140.4552.34477.stgit@lebasque.1015granger.net> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Clean up compiler warnings: ../../support/include/sockaddr.h: In function ‘compare_sockaddr6’: ../../support/include/sockaddr.h:197:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:198:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:199:6: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:200:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] ../../support/include/sockaddr.h:204:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] Seen with gcc version 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC) Note also that site-local IPv6 addresses are deprecated, and thus are no longer encountered. Signed-off-by: Chuck Lever --- support/include/sockaddr.h | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/support/include/sockaddr.h b/support/include/sockaddr.h index 9af2543..72766db 100644 --- a/support/include/sockaddr.h +++ b/support/include/sockaddr.h @@ -193,16 +193,14 @@ compare_sockaddr6(const struct sockaddr *sa1, const struct sockaddr *sa2) { const struct sockaddr_in6 *sin1 = (const struct sockaddr_in6 *)sa1; const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sa2; + const struct in6_addr *saddr1 = &sin1->sin6_addr; + const struct in6_addr *saddr2 = &sin2->sin6_addr; - if ((IN6_IS_ADDR_LINKLOCAL((char *)&sin1->sin6_addr) && - IN6_IS_ADDR_LINKLOCAL((char *)&sin2->sin6_addr)) || - (IN6_IS_ADDR_SITELOCAL((char *)&sin1->sin6_addr) && - IN6_IS_ADDR_SITELOCAL((char *)&sin2->sin6_addr))) + if (IN6_IS_ADDR_LINKLOCAL(saddr1) && IN6_IS_ADDR_LINKLOCAL(saddr2)) if (sin1->sin6_scope_id != sin2->sin6_scope_id) return false; - return IN6_ARE_ADDR_EQUAL((char *)&sin1->sin6_addr, - (char *)&sin2->sin6_addr); + return IN6_ARE_ADDR_EQUAL(saddr1, saddr2); } #else /* !IPV6_SUPPORTED */ static inline _Bool