From owner-svn-src-projects@freebsd.org Thu Jun 14 00:03:46 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04BD910044DC for ; Thu, 14 Jun 2018 00:03:45 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 71A7283FF9; Thu, 14 Jun 2018 00:03:45 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52C362099C; Thu, 14 Jun 2018 00:03:45 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w5E03jEd063666; Thu, 14 Jun 2018 00:03:45 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w5E03jPG063665; Thu, 14 Jun 2018 00:03:45 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201806140003.w5E03jPG063665@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Thu, 14 Jun 2018 00:03:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r335098 - projects/pnfs-planb-server/usr.bin/pnfsdscopymr X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: projects/pnfs-planb-server/usr.bin/pnfsdscopymr X-SVN-Commit-Revision: 335098 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2018 00:03:46 -0000 Author: rmacklem Date: Thu Jun 14 00:03:44 2018 New Revision: 335098 URL: https://svnweb.freebsd.org/changeset/base/335098 Log: Fix some things in preparation for a merge into head. Get rid of SPDX-License-Identifier for now. Use a second ssize_t variable to avoid a "signed vs unsigned" warning for powerpc. Copy ai_addr into a struct sockaddr_in, since mips warns that the alignment requirements for "struct sockaddr" is different than "struct sockaddr_in". Modified: projects/pnfs-planb-server/usr.bin/pnfsdscopymr/pnfsdscopymr.c Modified: projects/pnfs-planb-server/usr.bin/pnfsdscopymr/pnfsdscopymr.c ============================================================================== --- projects/pnfs-planb-server/usr.bin/pnfsdscopymr/pnfsdscopymr.c Wed Jun 13 23:58:36 2018 (r335097) +++ projects/pnfs-planb-server/usr.bin/pnfsdscopymr/pnfsdscopymr.c Thu Jun 14 00:03:44 2018 (r335098) @@ -1,6 +1,4 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * * Copyright (c) 2017 Rick Macklem * * Redistribution and use in source and binary forms, with or without @@ -74,9 +72,9 @@ main(int argc, char *argv[]) struct stat sb; struct statfs sf; struct addrinfo hints, *res, *nres; - struct sockaddr_in *sin; - struct sockaddr_in6 *sin6; - ssize_t xattrsize; + struct sockaddr_in sin; + struct sockaddr_in6 sin6; + ssize_t xattrsize, xattrsize2; size_t mirlen; int ch, fnd, fndzero, i, migrateit, mirrorcnt, mirrorit, ret; int mirrorlevel; @@ -134,7 +132,8 @@ main(int argc, char *argv[]) xattrsize = extattr_get_file(*argv, EXTATTR_NAMESPACE_SYSTEM, "pnfsd.dsfile", dsfile, sizeof(dsfile)); mirrorcnt = xattrsize / sizeof(struct pnfsdsfile); - if (mirrorcnt < 1 || xattrsize != mirrorcnt * sizeof(struct pnfsdsfile)) + xattrsize2 = mirrorcnt * sizeof(struct pnfsdsfile); + if (mirrorcnt < 1 || xattrsize != xattrsize2) errx(1, "Can't get extattr pnfsd.dsfile for %s", *argv); /* See if there is a 0.0.0.0 entry. */ @@ -195,16 +194,19 @@ main(int argc, char *argv[]) * DS, just exit(0), since copying isn't * required. */ - if (nres->ai_family == AF_INET) { - sin = (struct sockaddr_in *) - nres->ai_addr; - if (sin->sin_addr.s_addr == + if (nres->ai_family == AF_INET && + nres->ai_addrlen >= sizeof(sin)) { + memcpy(&sin, nres->ai_addr, + sizeof(sin)); + if (sin.sin_addr.s_addr == dsfile[i].dsf_sin.sin_addr.s_addr) exit(0); - } else if (nres->ai_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *) - nres->ai_addr; - if (IN6_ARE_ADDR_EQUAL(&sin6->sin6_addr, + } else if (nres->ai_family == + AF_INET6 && nres->ai_addrlen >= + sizeof(sin6)) { + memcpy(&sin6, nres->ai_addr, + sizeof(sin)); + if (IN6_ARE_ADDR_EQUAL(&sin6.sin6_addr, &dsfile[i].dsf_sin6.sin6_addr)) exit(0); } @@ -253,18 +255,21 @@ main(int argc, char *argv[]) /* * Note if the entry is found. */ - if (nres->ai_family == AF_INET) { - sin = (struct sockaddr_in *) - nres->ai_addr; - if (sin->sin_addr.s_addr == + if (nres->ai_family == AF_INET && + nres->ai_addrlen >= sizeof(sin)) { + memcpy(&sin, nres->ai_addr, + sizeof(sin)); + if (sin.sin_addr.s_addr == dsfile[i].dsf_sin.sin_addr.s_addr) { fnd = 1; break; } - } else if (nres->ai_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *) - nres->ai_addr; - if (IN6_ARE_ADDR_EQUAL(&sin6->sin6_addr, + } else if (nres->ai_family == + AF_INET6 && nres->ai_addrlen >= + sizeof(sin6)) { + memcpy(&sin6, nres->ai_addr, + sizeof(sin)); + if (IN6_ARE_ADDR_EQUAL(&sin6.sin6_addr, &dsfile[i].dsf_sin6.sin6_addr)) { fnd = 1; break;