From owner-svn-src-stable@freebsd.org  Sun Feb 12 09:24:20 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16872CDC906;
 Sun, 12 Feb 2017 09:24:20 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 8289B9B4;
 Sun, 12 Feb 2017 09:24:19 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1C9OIhv071937;
 Sun, 12 Feb 2017 09:24:18 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1C9OIvu071932;
 Sun, 12 Feb 2017 09:24:18 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702120924.v1C9OIvu071932@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Sun, 12 Feb 2017 09:24:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313680 - in stable/11: contrib/netbsd-tests
 contrib/netbsd-tests/crypto/libcrypto contrib/netbsd-tests/dev/audio
 contrib/netbsd-tests/dev/cgd contrib/netbsd-tests/fs/ffs contrib/netbsd...
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Feb 2017 09:24:20 -0000

Author: ngie
Date: Sun Feb 12 09:24:18 2017
New Revision: 313680
URL: https://svnweb.freebsd.org/changeset/base/313680

Log:
  MFC r312008:
  
  Upgrade NetBSD tests to 01.11.2017_23.20 snapshot
  
  This contains some new testcases in /usr/tests/...:
  
  - .../lib/libc
  - .../lib/libthr
  - .../lib/msun
  - .../sys/kern
  
  Tested on:	amd64, i386

Added:
  stable/11/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c
  stable/11/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c
  stable/11/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
  stable/11/contrib/netbsd-tests/kernel/msg.h
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/msg.h
  stable/11/contrib/netbsd-tests/kernel/t_ptrace.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_wait.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_wait.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_wait.h
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_wait.h
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_wait3.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_wait3.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_wait4.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_wait4.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_wait6.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_wait6.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_waitid.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_waitid.c
  stable/11/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c
  stable/11/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c
  stable/11/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c
  stable/11/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c
  stable/11/contrib/netbsd-tests/lib/libm/t_casinh.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libm/t_casinh.c
  stable/11/contrib/netbsd-tests/lib/libm/t_fe_round.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libm/t_fe_round.c
  stable/11/contrib/netbsd-tests/lib/libm/t_ilogb.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libm/t_ilogb.c
  stable/11/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c
  stable/11/contrib/netbsd-tests/net/net/t_mtudisc.sh
     - copied unchanged from r312008, head/contrib/netbsd-tests/net/net/t_mtudisc.sh
  stable/11/contrib/netbsd-tests/net/net/t_mtudisc6.sh
     - copied unchanged from r312008, head/contrib/netbsd-tests/net/net/t_mtudisc6.sh
  stable/11/contrib/netbsd-tests/net/net/t_ping6_opts.sh
     - copied unchanged from r312008, head/contrib/netbsd-tests/net/net/t_ping6_opts.sh
  stable/11/contrib/netbsd-tests/net/net_common.sh
     - copied unchanged from r312008, head/contrib/netbsd-tests/net/net_common.sh
  stable/11/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c
  stable/11/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c
     - copied unchanged from r312008, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c
Modified:
  stable/11/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh
  stable/11/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh
  stable/11/contrib/netbsd-tests/dev/audio/h_pad.c
  stable/11/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
  stable/11/contrib/netbsd-tests/fs/ffs/ffs_common.sh
  stable/11/contrib/netbsd-tests/fs/fifofs/t_fifo.c
  stable/11/contrib/netbsd-tests/fs/psshfs/t_psshfs.sh
  stable/11/contrib/netbsd-tests/fs/puffs/t_basic.c
  stable/11/contrib/netbsd-tests/fs/vfs/t_vnops.c
  stable/11/contrib/netbsd-tests/h_macros.h
  stable/11/contrib/netbsd-tests/kernel/t_mqueue.c
  stable/11/contrib/netbsd-tests/lib/libc/arch/sparc64/exec_prot_support.c
  stable/11/contrib/netbsd-tests/lib/libc/arch/sparc64/return_one.S
  stable/11/contrib/netbsd-tests/lib/libc/db/h_db.c
  stable/11/contrib/netbsd-tests/lib/libc/db/t_db.sh
  stable/11/contrib/netbsd-tests/lib/libc/gen/t_dir.c
  stable/11/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c
  stable/11/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c
  stable/11/contrib/netbsd-tests/lib/libc/string/t_memcpy.c
  stable/11/contrib/netbsd-tests/lib/libc/string/t_memmem.c
  stable/11/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc
  stable/11/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c
  stable/11/contrib/netbsd-tests/lib/libm/t_ldexp.c
  stable/11/contrib/netbsd-tests/lib/libm/t_precision.c
  stable/11/contrib/netbsd-tests/lib/libpthread/h_common.h
  stable/11/contrib/netbsd-tests/lib/libpthread/t_mutex.c
  stable/11/contrib/netbsd-tests/lib/librumpclient/h_execthr.c
  stable/11/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh
  stable/11/contrib/netbsd-tests/lib/libusbhid/t_usbhid.c
  stable/11/contrib/netbsd-tests/net/arp/t_arp.sh
  stable/11/contrib/netbsd-tests/net/arp/t_dad.sh
  stable/11/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh
  stable/11/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh
  stable/11/contrib/netbsd-tests/net/if/t_compat.c
  stable/11/contrib/netbsd-tests/net/if/t_ifconfig.sh
  stable/11/contrib/netbsd-tests/net/if_bridge/t_bridge.sh
  stable/11/contrib/netbsd-tests/net/if_gif/t_gif.sh
  stable/11/contrib/netbsd-tests/net/if_pppoe/t_pppoe.sh
  stable/11/contrib/netbsd-tests/net/if_tap/t_tap.sh
  stable/11/contrib/netbsd-tests/net/mcast/t_mcast.sh
  stable/11/contrib/netbsd-tests/net/ndp/t_dad.sh
  stable/11/contrib/netbsd-tests/net/ndp/t_ndp.sh
  stable/11/contrib/netbsd-tests/net/ndp/t_ra.sh
  stable/11/contrib/netbsd-tests/net/net/t_forwarding.sh
  stable/11/contrib/netbsd-tests/net/net/t_ipaddress.sh
  stable/11/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh
  stable/11/contrib/netbsd-tests/net/net/t_ipv6address.sh
  stable/11/contrib/netbsd-tests/net/route/t_change.sh
  stable/11/contrib/netbsd-tests/net/route/t_flags.sh
  stable/11/contrib/netbsd-tests/net/route/t_flags6.sh
  stable/11/contrib/netbsd-tests/net/route/t_route.sh
  stable/11/contrib/netbsd-tests/rump/modautoload/t_modautoload.c
  stable/11/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c
  stable/11/contrib/netbsd-tests/sys/net/t_print.c
  stable/11/contrib/netbsd-tests/usr.bin/config/t_config.sh
  stable/11/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh
  stable/11/lib/libc/tests/db/Makefile
  stable/11/lib/libc/tests/gen/Makefile
  stable/11/lib/libc/tests/sys/Makefile
  stable/11/lib/libthr/tests/Makefile
  stable/11/lib/msun/tests/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh
==============================================================================
--- stable/11/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh	Sun Feb 12 08:36:47 2017	(r313679)
+++ stable/11/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh	Sun Feb 12 09:24:18 2017	(r313680)
@@ -1,4 +1,4 @@
-# $NetBSD: t_libcrypto.sh,v 1.3 2010/11/08 19:06:12 pooka Exp $
+# $NetBSD: t_libcrypto.sh,v 1.4 2016/10/13 09:25:37 martin Exp $
 #
 # Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -49,7 +49,7 @@ atf_test_case bn
 bn_head()
 {
 	atf_set "descr" "Checks BIGNUM library"
-	atf_set "timeout" "300"
+	atf_set "timeout" "360"
 }
 bn_body()
 {

Modified: stable/11/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh
==============================================================================
--- stable/11/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh	Sun Feb 12 08:36:47 2017	(r313679)
+++ stable/11/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh	Sun Feb 12 09:24:18 2017	(r313680)
@@ -1,4 +1,4 @@
-# $NetBSD: t_pubkey.sh,v 1.3 2011/06/09 05:25:21 spz Exp $
+# $NetBSD: t_pubkey.sh,v 1.4 2016/10/13 09:25:37 martin Exp $
 #
 # Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -49,7 +49,7 @@ atf_test_case rsa
 rsa_head()
 {
 	atf_set "descr" "Checks RSA"
-	atf_set "timeout" "300"
+	atf_set "timeout" "420"
 }
 rsa_body()
 {
@@ -60,7 +60,7 @@ atf_test_case ec
 ec_head()
 {
 	atf_set "descr" "Checks EC cipher"
-	atf_set "timeout" "300"
+	atf_set "timeout" "480"
 }
 ec_body()
 {
@@ -81,7 +81,7 @@ atf_test_case ecdsa
 ecdsa_head()
 {
 	atf_set "descr" "Checks ECDSA algorithm"
-	atf_set "timeout" "300"
+	atf_set "timeout" "480"
 }
 ecdsa_body()
 {

Modified: stable/11/contrib/netbsd-tests/dev/audio/h_pad.c
==============================================================================
--- stable/11/contrib/netbsd-tests/dev/audio/h_pad.c	Sun Feb 12 08:36:47 2017	(r313679)
+++ stable/11/contrib/netbsd-tests/dev/audio/h_pad.c	Sun Feb 12 09:24:18 2017	(r313680)
@@ -1,4 +1,4 @@
-/*	$NetBSD: h_pad.c,v 1.1 2010/08/04 13:15:15 pooka Exp $	*/
+/*	$NetBSD: h_pad.c,v 1.2 2016/10/15 07:08:06 nat Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -56,14 +56,14 @@ main(int argc, char *argv[])
 	ssize_t n;
 
 	rump_init();
-	audiofd = rump_sys_open("/dev/audio0", O_RDWR);
-	if (audiofd == -1)
-		err(1, "open audio");
-
 	padfd = rump_sys_open("/dev/pad0", O_RDONLY);
 	if (padfd == -1)
 		err(1, "open pad");
 
+	audiofd = rump_sys_open("/dev/audio0", O_RDWR);
+	if (audiofd == -1)
+		err(1, "open audio");
+
 	if ((n = rump_sys_write(audiofd, musa, sizeof(musa))) != sizeof(musa))
 		err(1, "write");
 

Modified: stable/11/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue
==============================================================================
--- stable/11/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue	Sun Feb 12 08:36:47 2017	(r313679)
+++ stable/11/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue	Sun Feb 12 09:24:18 2017	(r313680)
@@ -1,1035 +1,1040 @@
 begin 644 t_pad_output.bz2
-M0EIH.3%!629369%IQ#X`<IM_____________________________________
-M________X)OO)A21(@B``4"A15``"A2!1E]V5*%%*`!0JJ7"HT*HVT6^LZTT
-M13<F#E#=<'#>MT#FU'+1O7<;MT;NYNNYW<[N[OO;K>W7+>^Y[M;[LV]??=M]
-MYZ[MMMO>WO;6=W.KIOKNUF:EFEJVK5I"+:J;8:B5K1JJIJVUJV,K6IK5MJJ6
-M--%5FJLS55K158M5K:U5FU4RVMJ(K0BK-6Q0-L+6JVLJ6MK559M5556*M54J
-MJMIMFS-"U6LJRUBRJJRV;55::M6U[G=0JI5-4W66J=KVZ]LNW=]W=FW=S;YM
-MDO<]LW>Z[WW%E@WUOD-[G!SN<'=W$CD8@[K<FVD6>N<36:PVO=W;*I*E%4SC
-MV]XE)5!54*"@*JJMH)J0H*`4&V4`!11(``!4BJI27O>Z(]5()`22)**%4``I
-M0`!*B5`D(DB*5@:5``AH`"8F3"8`F0#3(Q,FF@#1H&(&C)H-#3330!ID,C`C
-M!-,F)IIA`TQ-,!,33$831@@R9&$T`!,`@TD@FC$``````&@```:-`3`F$P0T
-M,$!@`$``#03T!H-`U,`33$TTQJ-,$P$P%/$R8",!-02FDI"!$QJ>S,`0`$!H
-M:!#":$Q-,28$V@0-`34]$:;*:>D]1I[0H'HGDRC:AD&@]0&@/4`]0R`R,AH-
-M!H`VHS2`:`(4E)*)&R>J-^GBGL!2,:::2;48GI$IO%)Y)Y)[3TE/U1^FFC*C
-MQ&H>IZC$T,AIZAZF31H>4``'J!DTTT---```#U```-`9#0T``T!(I((28-)B
-M>A3TTF>14]3VT&IJ>R,@F$TQ'DT3&@FU3\4GFDT>J>333&IBFTPF$T]$-,32
-MGM-4]IDTR)ZI^1I3V332;(93-4_5/R>D#":GDU-D:FIZ>IM3U-HTH)-25)%1
-MM3:3]L/-2$FWD4S4U-B:::FB;4V3"4_4R4>H>U0;4]JGJ&33T]4T`#(T-&0]
-M0!HT-`_5`!Z@T````9!IH:```````_Q$/Z:,D&8X$&L.'B.D00+!M12TQ2">
-MGH4)$$U776'(,NA5T"`@H&+#%`;<'^;2<4$`CK#I>?6\SY]KTOQX,LDD%=#]
-M=K=W[.S5.*PD:9EE+#8V,8RRL@"_3]+%\'Y\OE<[XY25)9,&QL(&#!(B3@T.
-MCTYNF5=LVA0D0'QD+"T]J]AX/R0)P"P$\13QX$Q,/GR(O5_U5.R7J.DE`0K(
-MEC0PL$_ONQ0)A@@60_";^_OE&;Q_:\_3BPGL8?\=O:KUNG!-MF0A03X9PPMX
-MF'WE;&SK)O(N2J"`80_J9Y6*=6(?DZ7*_=I%;(JB,Q$/X5S@P$*M6IZ6$>F.
-M&L;Y&C($S\KC'O`Q#')%M:;\FTP-4ET5[;UV7JU<$0D7*H[&KC\]MFO+$`\&
-MK%L^,?8,8N-=10VF1`%ZT<0V#-6C#OCSQ<+:D1!\*'M+14@>!P\/!T&+LDA`
-MM>S!`Y))"PU-A7RRF1#XLD2TAAXFXPES0HB!="\G,MI5;+<6\:#8!?:^9F[%
-ME',L8MFO;T)7.GR!;_`/D0:1+;UF7Y[3=J&V"``O/U.NE!"#*9$.X86#N,8I
-M`#2>Y2VR.+WM3?[`$7UIE`R.12-/ADE3=;A$1!:]O_:**7`0NS1[]JFWB&;,
-M9H]?3J1$29(D`##!T*ZI]K?Y2?W`!+<"-:V[)FM&)64CY`27=R&1(43Q0:.3
-M57.RL\G5'0B!%DUBC6R2:/8GH36'00V/_3FF$$BHG7;+O%I3X!8&S2LK'/>1
-M8OS=Z#;4Y$43X>>W=G@!;JCZJXZ+CG@"_SV[O7ZI=P8DJ:+_5D',I4)`;G=/
-M'LMX@K6`@UZ4;>CQD0!>G1L^>LPH@:>W<=.CS^7@)?+I``+POTESZ]3/ZA2!
-M75?3@*BYG9V,AZN4Q4&IJ@(<=6[N*2:B4T<QKI#O,ZO-HP0'U-93XT^"A:<5
-MT6-2(HM3`Y[CJ.+14K[U\5;*A$78H:]/`WME:,[SII]<4D!%9=VZ6J(N'#C<
-MKS'M=:II1G0(2!?].M0MLAD.O>)ITB]VC:@%[*8[4SK5EZR_]5WDD@B*BP]Z
-MM&`(P"9NX?<(%_4:IX/(`!5M=`Y*J0ALV/=9UEH,?/)])PN4S.3Q*JX(OE@.
-M2:Z?"+C-^RQK#(AH^YZF'"(N4H(.K.`QOV&@=HI"`,-P0@1,W5)#ZE916Z/V
-MDMCV8^`4YS\-7R*L!D&Y@OT/@[O\HB+8?+K:EP*>6KQIHI#9&]*\I@AOG`B[
-ME!(1^\3.":<CW*ZM?*Q*Q`M9(]AW:5CCD*E1DZ>TV[8($^"X\PV,D"7'@5IA
-M_&HS5?4^K5(@17-'D>"%FJ8^%HE-%-GP07=Y"M@$+JL?O=<_H_;+X"$$)/+$
-M(#&Y%>VSVDIS6@!!PH[W&3U(!SXV;RV<\".VZ\"A!%NDZM&LY*JMTR0+GH5%
-M-UD0(OWQ1PM=G=;!V2D>(AEP2@)MH6&EBU77QS:R7B0`5P)?N)=]4'"%!``L
-M6>;IEY>3]?^J#F8Y((@VJ'9(3=(Y;EL/U*W3_M""&*6LOPA)`2G2\;XHZ?,1
-MN@9?--I!`7BU)`)6&?V2\RV=GPPO_+AI`13_]&!9NI8WF&D8=EAD>=1@A]-M
-M2*,@.#^UP_^]`1,'Y@7\>&O=GPWW86]K`46*"9"107H9R&2FIS4QC(C9?S9E
-M0`/+,`K\G03>F3F0D&K]O^I"WC##9]90$6;P/K*\,L":#V^TRY\OGS?!Z.>D
-M($R4A>S*K^+BN!7^#D(`!):^.YO0(#Y_7L:3*O#7:[G5>S#2DD#:[ZDW8'GX
-M2)284[['@*/]+TCLR$C2\R=8*W5,5CI?!P%6`2B(:+04!>;6K6S6]]<H]_T8
-M'])`!/+^!Q/?6.L&C>(_;T]*B(`QH.-:D+F0Y<GK\<MQTJ@(NSSWHBDECQC7
-M\U6/P<R$`(2A!FBDZ2;7S&G.#H;S]]![200F8L$DO:GRND<"7MTP&@)`%8+]
-M]<H'.S@##D@`'KUN8M0/S1,/-<R?^,>(DOX[O8A^D&ZOMFWV'@4'P8^/`G6'
-M4MT7D&'K95`"'TM;8HC'LCRM8)T%MM8^D+N/=;2(V#3NCX`4ISMR_2ZY!(<<
-MOD<CL)<\5UVP2KOK)#O8?R:KPK=M2)!`<WFX+>MH/*.`-_8\FLT9T`6L6N;B
-ML+\].#\V8R;3BE920@#2V<!/@EWP:5@-=/0[_U2=-[40`S?H?N7RB%;"I]KD
-M-'*\CP14VB`'5!,B+)?#\X;3>1+PA(E.R3ONAYKUN//A^GSGB+*OAX\D`:G4
-M:N6A>'`4Q\%%^V;+*\"K@=4D2`OFKMZ-$0*_[`*>S-)N7WOTB9UK:P8!A_-*
-M!#IK6Q(LWF_4F>(UJO>>(9:Z7`0D,+EMF0/N3>?#*1()V)O8Z86&8^!<<S?9
-MV-!#!I?WS=C*.^]M["(8[.I2@7>^ZRS=X!-^V>ZVP;`ZT!\%Z,_M4O]>(!*Q
-M%78V.MY[<?!&R'\W%!";Z).'0,EXHGP@AOI>N[_RBAL(JLA?)W_"-+S/ZED0
-M;/3I;2@T6N\'?(;S])2EU,C6-+$@`&SZ+)688"[5QVM98;-GB%YN\`AY&9IE
-MW6!=**T2J@+$5]."ANQ]8K\>S;J0'=Q541?&&5H]>H.:O/8H/BC(H+5TL-!%
-MC&+N0$H<`3/0LN='R;P@R<.!'<-C*;7FPP#W3-<!"<*VU@/@"R^%V`,2`C0M
-M<[CZSS8'P0@F+N6%N0@O7^_#$V$K\#Y:_8@6+=(6^T.%JL]J>Z"8=_X,P_=A
-MXHKO&(2"G=D,QU$C((T6%6GP&!#S"XF5-4V6YAT`'5EB!2_H5<S!6VSSJ4DH
-M2&55(%+Z8*<:C36G8KKWP/D+,%[:GB]%5Q_.4YOQPAA$1:P!;6N@[QYP8J&L
-M`7F,-$$P&O=5:@6!LB4^CW/&0_GH.-/QFH&=/@5]I$\8`<3]>R+\+"TB'N$`
-M+T%X4&3]-]G#I0>*@2%GIH<DS;8TZ`,SUUGE@7"K"^(WP2&)^#.@SM/.-LYH
-M50@)_':RR3$3A7+=[&JUS1-*F0]7FI,B0#+L?EQ._.2&EP?/2I:00FV[@$0A
-M.*;AY"`6%?2Q/BSU56-J,BD+2#GP775X%-,NR-RM9U?0D+8`(%7!F[PVZV>7
-MSW9O]0D`OIGB+^\1)&P36=Y]RD/%JD1%"5@`[_O_LUM7*JV1\K6;+I3/![/Q
-M.#`S2;N_U[:(B>+8XRN,SF.'J%WW8:0"&DUMP7<C>D:"XONX&O-1"LFTT^RG
-MR+S^5?!8/;3Y9K[##DDM+1(B+E*B/MD%:Y4H%W4-P>!,]+^'3!:;H\PZRRFC
-M,*N]1$`Y3OHLIC/@I?18G7MEW5J04*WZE9NVEJCX]O3A@!"*.^XTQR#K_H+B
-MK`_GST-]:GHOXGP6;!7_\>WC/V4[-<>[Y"(A'>SUX`+BNS=W40.$/SF;@#%7
-M/G9ZN`.E)(9E.O"`OX'_/=0TANWS\@%ZGZ"Q`@[-KB[#G4C"?(+B9O2!?3V?
-MU(RWC7&#H]VG6T@"3_+P0#-+4"/+:-K195`'/]=0!>5EY/E\%"0EO%WYN;I\
-M,!92L^L[-@(=H^*F`-%2<NZEB&1F/C\T$JD_D^6%<V9$.]\[G[?P9SX'GV5^
-M,(NX=2`'9'5X2ME6F9SL"*!$0TU6`7PTWM43<ME'QBG+SQT\R1>+>M'^T?2W
-M'C:U,<Z;(8:YW.JT*.)4=93(3]2M_,U\1+5KF=GU(;HIFB54)$BR>6=Z7MD-
-M!S,3Y&RP>BX!RT^M!(O4_R)^"A]\?+TU4;M'@"5;;:ZIS@]DEP@`GW#)=.K]
-MO\7W&3'^J?:TH`>FSXA%M?%/2O67]%.K"6EKOD22)U:K(B<XN>^/<O]"HGRU
-M=1G0!BL2>TNND%OAGR,>$A17>EHS;U89'SEZ,TK*[C@G2H>W_/QJP2&S5GGO
-MJE2]X=O]U=K22`\/)G.A*\;1D5Y8TB9-1"S]]V@!)?#_OC6ZNP(-L@?M71N)
-MF5SY`+]]\X//8((6RI`6'=Q<E;-&T9U!02033.8U3B>>`,79HH,_*7BDQ5B$
-MF#C;\$,9E\_=O%KQ8180+*XJ:0$1[TM:]]/]?3>UY$I,\SDOR,#I1E=JFS"!
-M)D6KO$6H8D4OU,[!)!$>B\C[>U3$!Z^KJW(<\.5K:U&!G41!!%$5_Y/6QC<L
-M&&>+5MNVCN4"&]Z]DJ<WB:O&S"`?1]Q4Q9D4Q[^2JY+.G1S&7[J8(,^[JG+N
-M[C*+KV@(??>O`(9_'6]7?*ZF8/$&+R1H`D$,1>.+._G@W*)DDB;]VG`*5YF7
-MWD]IU[X\&5T,-")):A_]LR"]=;MJN5!LX6;D=]@@KQ`@^-G`>;-=H$6+3?0;
-MYG3YLP?<=K)H?)5`"JW_5R6!`Q9OZ8Z#_17<BY98V5E\T^1C@6Q[&6U$Q9:9
-MK[7?NG'$22+63?0X&UV%F`(+]O/YV.Z[)XGX$)F*O6R;%@K>/+4<,$0*_:]M
-M['1B(#.(QC+-;7CH'N\LREOH(>W0-/OY\=&_S[F9)"7_77XA@06;X>OJ&IOK
-M]_"/D$]\6"(#S']/.AK:OAKS"CC7-%WN:`*S+_$Q\,^Z5>:9-EA;.ZD`(GSF
-MIQ:L*`\3U-]F](KQ2F<&;.+!Y/Y?&`$JI5%RF94'0/-]9,`:CO;'C<7'S6Y/
-MC(IK?C@3Z*)/UJ'6-^%6!`"074SY(^7^GX$0[^K\-)/;:';#_=4R9TB+O0^G
-M[]]7D3#&W$Q$WJ'_>WZV-KK`!WGEP^O)3UHKSY6'>%*ZJN$_$'M<RW'N3@VG
-MC_>>40"Y'4TKT[6!UHFC)`&?/)6ALNE4_=YKB+#=*OU0?%/4DSB6RY5I(*1T
-MBS_(D<8`16E0,O"KK9W:_/'P9`7LW2]VZ=L6P&CX1W4GLP1+"_P[R>#N[U"/
-M6WJ(6I\<?P_[X?6R!#(LG/STLX<^7MD`NK*!S0`\N8DE:_:=6>K#MUC,*=$&
-M1:KI+^\1_-\P/5`$`\H[779:X^25NX"RC<8`-!NW(+E)7#8<-$0NNC.=8%;Y
-M""W5''H1A\USP=7IXRZHLP`5SU[KII-+72^YR&2"Z82`/&[YW!C^'UK5S(MO
-MW&B.-PG"G%8BH=8XL2#/=7#/E$X>/AR(5Z^AT]%#>CG.$(E5&]2?[<@D>*0/
-MLZ<&PTK&10ST<\S7A0!X<3B>_3^EJE_\RHP"TFVYCEX^77UK9&C9T20A*]99
-M7K6E``:<-TKEE8"N>WK92J@43N+VH+CGZ#],-YHU(37CX]<0)-RJOCFS%/><
-MAQN%3[ZBT6R(:O24[5N6@(0PW=6K8XBYT._;F*0;7N`AGO:TU&>^N%)?1CJ+
-MGA$!F<DBZRR@+A?1R45Q`-D'C;CU._QU\Y_L3J>/HR`O_,-OQ]:S+*EE+7F;
-M)8:Y8$Z23!0[=.AU<55;Y+G00EZ:%X+;4.QH1$7K^V(=S>;QJF5!%*(66:M6
-M[]<2>?+NA5:@B'.L/3K<LY,LFX^[PSH!:J[>#D=IF8CCD"I:=]2]C(V:VB`Z
-MOS\_5M\P`2K/>9)C:<PLX]54P&;1?=&O((:!0M#[J_P6J;EY#BS`%!%]#O=#
-MJ<P^0+4\R!M:CJJX/`W&=%K'L95T@'CGU'+/W)&/M#$JGRCN6]_XTD0K4JSN
-MCTJK)%50IA1I&(%\>#G,^D1A32(@7>9.&JW(0D0'@NOJ*)ZVW.3&/<M?A@U)
-M)3;K%=N-RPD3AVEX'E0QL(X#:*O;P63.>)46P09QKXZA5D`53`!D=\)LX*R1
-M!$VM(PTC]$J02F,8P,".;C\K*?9X_7%;MH6>P6<2HYV8U=JFL3)L0P;&-M=6
-MQ"QWM=K46:O@8B=]_\<9C+E\'NRM?3;$*AU\"9&FVFFQH!@"],<7:RQP[:(X
-M(.&1#:N&(>`2H-SY3E0:Q```RU<;/1R="%-3!('Y%^`@'U3/^:?U'4DDD^2K
-M_QSJ>F@<3(!_<D\LKFH(Y-$6D@X(T(H!0B$UDK38+]F,CAWJHEZ?5`GCKH+4
-M`+/;,#O&C)0JD<)S8TE?Z%?S+H'?'7R+RR)GCF_;C-"$B<'F6EZCQ)F6HN$0
-M(0$=UD75WP*Q0XM>5_39XX%+[S0)3Q!$2G$(CR,W5,0ALWVR5@^PNW\Z?G("
-M`E5V)'F?/MYL@H'05?I>U/0;5$JNX(9@PLAMWF/]5Y=G2)KZA/W]\6KGP7TW
-M=W;`93G$(W[@4<N?D]^`\1>7APG.]9PXDV619K+/GQ=Y"H#*8MA2K<.U0:]J
-M:[P_S0(`0S@3L$R/6W=-GT;+A'"+='OL8`Z36_XSN)T+M;(@*I\0Q$P[W.QU
-M75`U^S3T[*WDD"J.S-BXH)4"-NVA`QPE7A^H`7^G#K^Y#]GW<Z0-U'L9XQBX
-M/G,0/2L<L65+0XI"0#1\P,&*RMK](;[L)G0$!<XWS*K9:XI`0B&#2;!.WF&4
-M5])X>?Z@6;MLN!LH;Y8V[TBAUSY!77`-3DZ).?CA%NN(3U]N[8L)PO7=2[[?
-MK?+IP4G)+./7E[L39T%%XY?YT$-0U[8TLY4Z3UDGQ6P.(=`BEAE9/#\#15F/
-M`>_ME9OM"".@E3DR84IGAU)L@Y9W1:M_[OX_)?[G)6:Y=`;!--*(GTMVGOC@
-M"M.:85V$\*TYC78\0T]2+KO*6=_-F75H3!"RI[5E%MF-L:((=8,M2&70#ZW-
-M$O9J/0@H[BV!#T_DCO-3-M>J1$32[58X'"UIXHV&4I<18I##UHY6XXEJN&P/
-M[+_)I,DH:BVYVQQZ_O,X=!-]/8)XA,][37V[KG"[%TA.S(Y(\1:.1<'+8>P!
-MTC2B]U(SYL#9%1^*\-#T-R]I/8`]M.T2RK3'>,$!HM`\3#=>9@\`-?GY`S\]
-M'^7GF;T%I/11:4V6BU8@[1!]C9"PV\A^?P9`WL8!?79D"YCUK:`64G<=<^![
-MM#C.5F/_>8BBW!5>]G?,QPK`MOE8>+$X\S@'%B3EB66;K,\3Q-+A\#<Z_]4Y
-ML1N7V49^0.F=[,3)9XT"X3)P@7VF]AA.D-LN2^T:$@S7`LX'IFB]6EG1Z%CE
-MW1LA'="6']C_L:&OVUTPF`/LW=;J@6JVKFAQ6C5C(>=1PS8&'6ONW(<G':I7
-M4D!684-YQ?:#(?'R_;D[E!BL8!V>L^Y$^,ALR-E)'%'RR'Z;,8\@125W#0>(
-M(#Y96:QO(.%EGH"N6U!T\/&,'04QB=/WB-#*@D^2;)<3QA^2D?DHA$Z%2-6M
-M55_<:_/.C6[D.'%]GX_2?C`.K";8T6'&:5+CS0_F4Z)>K:&\@;TVTVP'I=^:
-MY=HX3U'3"E-E/-<7;]7*'2RO(T-)_@5+]/#*EW,7;/R1#'2:/\X@06H4X2+?
-M`);^=S>ZPX(A-FAP#!KYMMM\W+;4D_I/>>`'+KI;G\$G;W7IKB3!)@6L?=9B
-M8*,D]4:LO-(+-(:$GC_"'/22E/38XZ!EYB]IL#7&,F0SV+_9H#_L$NH_NN$;
-M`YY;>`WRW)2(R_EGS0Y>4R/2%0UT!H>XOSJ#,5UEL#1:S819LJ2Y9YXR$;:*
-M+2R9H5&H;4'TW\@&]O?C08ZIYG"M.?O$WF_L;$_+KZ/I@,;.8VO8-DAQLE_@
-M*F+&8>S(8K^[BR.2[.:J/%0B[B^IOZ/H"=7ELT(5Z3P-M%;0Y0'"PW0%B^-L
-M^CHCB]9>CRF/0VMBJ084\S(]"?`EVGY&D]WJF)<7_849]9\T%NQU1^_WH&,_
-M5^:^K6L2FR(J\PH/W*3)P.C^9'<E3"M<*&0(L5OJVLECG+H@(#YIZNJ\P9[V
-MF=UY$X,?HBX=L.%>,6$)OO<O5&R#@KE37#!RS8Q'H%[O5-YI;.3KW#X(I-%L
-MS0#!/+'-`\_Q59XQ*%-K?WN%>0-%D1.;GY>Z%(/[H^5!\IJCTY>TVV!=^XZ]
-M/D?;R_(6)'WW?`>S2].TI:(%$?*%L3XD%Z`_[1*CVU3[S"EBV,S3O&V(D7C?
-M<Y`<@ZXQ0*%Y]6:%E+1NJ_I,<(S?;&\C+D.[JO)%31QN"CN\SDOJ6EV$(:JK
-MLF;C5N0(2=G\:69VYTI$%X)]Z_[?[!+N\,*-:9B/#.F,AN2&6EI#L.+IK#PS
-MES5?G>CX7#((<L-E^36.22W"&6%![_GX0+/)M@'@M:6Y-I5%:`9JR^'.`]+I
-M[M;OSA+FU_*];@-T>A-/5OOM."4.=)P3%-$'!ZQ;SBG8+&8(;Y]WO/QB!8>_
-M1`09PN#_L;#77^>^Z%CSS_RF*D%4_LM6Y\0W(7R&+SJ10?Z[!0X^R(2VMM<7
-MZ#@QIZ_ML697.F[D/>_WWC^,Z;,J'`[$<)J(QAJ.R^W['JQ@*YSF!LV#'(0G
-MINP0WMHSPE6@)+;2#N0I#RQP\XZOY8'[VWX$,"E;-W,?+W,3.!;[=@838['X
-MN'5^;;`/^,,G%+:5H+V&^EX>L`)7RZ=4\T.LI[4M4,2"M_G>?%I`_EHW'7=U
-M+'\NP(?YXV&)GD&EZ'@@71ZH48<^!BD^E^U2EAOE3@"A4:9C6">_N/?-+AH:
-MV$R>6I6S($%7H_C2_"R$&>,CKU`#E3X^\=.6!@_1^I.?=:Q_$04>S+1J?7[P
-MOT8K<\G7.YV1#<?7<[WV.+S.6:92!@SJ=-&X#-CB",TO[I$AGZK=S`)V;:V`
-M^)TX@VF6S(V3(R9[Q@?H]7*+0H,RN:\#%PD-3J6T0\+<D+P\<3/]';Z11J.!
-M;?(ZS\^PD)==V?U_XHH]<;:53MHPM-UW\Y!&3&ECK5_Y8>T(@W_3_Y[^,B6:
-MEF)6-335TB(-Y'S(@B&TWK?H@"KS3:49A_AC%$T#$SB3$_&C7A%PGX%@U%E#
-MH3OAQ,#V+C%%TJMF6WRU[G>I.+H?NE^<7ZO7[4$JNYWJ7W[J"60W_3]NLWF+
-MRZ7*TDY,V)/9C`GOL=[=+.]8$$0`E5TIH!H:),G*`Y\F'SZ6&"/IHYD84M7-
-MB@SK9"-\W8^A%&3A-<X6"P'=;;J;@)G68>3T0L_8UBV<SU"=V-TF+0U<Z?F*
-MF],]_QM/Q,5>6.(/_'+6Y_4<_W0:X/95G9K<NP"#Q?H\'R+Y;K&C(2GS-[18
-M4:AS[O@/D-0NS7`."=A&P^APVYIDDQ[#\49Y]8R1)+IAZ6H*Z0YSJV&T\I-'
-M5+K<&=8[PONB/%@"+F&NKW?0.'/FJTP0,55<J?$N%RQ,'6.&"J`:*(?3P-UU
-M\AX3T+INHB.C>[]6,VW;)RW[BL&"4QI*+FQIL3-;]0MTG<?/R!^_S84CE1CG
-M?QGIAK^9P"O;,SH]&#UY7$>,P&5];4I-/<#MZ[$G6F\QXH3/S1?6PP?`?+Q$
-M]R*YE='TQ>X[,Z+H34N>&#L0FK==ON$!U>%8>&^_LQ7N:&03DMT_&/"P<QNW
-M(P\[9WRC-W%"H8XP\7N](H_4U1V1(?7'B]7=_T<G[K!@F_>/5EL4ZUQPD"B_
-M&<%C2OQET?ZHSC`WFH*3S?D6R3B,6V'?[-W>B$Q@W>M,_N;\<`M2)=NG;C07
-M>9]X%OU`=]09"9P(UX,A^TM<,V7&O82A?MG/#`EKFD#9CS(HRZ_O6S(@.2:6
-M92'[SCA]-D@A0XX!P&6[(P'*M+1[4=/><0R]>^8MH)B>5ZXD?R9(8"OG#+]/
-MXU#^`[.XMGMC-!X*,,;J-L\ZJ[9JT&"-'.[P5%`A]1L53J-Z8O^1B&F(?/F?
-MEZ6-.7H;)E,M&+ISG+`U?ZT)VCVXY'G]3\C'Y&&]UV(.<P$OFSN?\P4,!6-/
-M7B$4C@?>+R!'\3#[M"',]^NSG/W!-`R+(=B;KN?>=B0!7YM]TGPN?R]6>&E?
-M2\]9^5R5!!-?`^Q<C9C814H>G\F?HCEEH)^F(2RF_6)I0OS;,8,&8'4?ISN>
-M4>5)YWW/\][[2T/#PW\^+!DC(RF'_+C\3NG0WN\FGH(:C?6_:G#U_-QO`]/L
-MS0O9V;_2/OARD3*]*Q#?(@?&GTWP$_1TUJX%51#[8U%HU5L747&5+ST6H,!2
-M$X;-DZ;MV/:X!CJ#M-XM6U<O7#MP;A"<?2E7N$BT=;&&M?GQ>]D;/`Z@0PP%
-MF8::)8Q5B+;K[!7`E<!J]L=H?,*%VS[O]QL\^/9V!Q=C4/+$9R_=]$*)GD%8
-MVEL:C<S[:<-YF;U`=M?TJ70F0^C0F,7&UVSS<AA8-U&%P[*<SLJ51T,.5$-2
-MYL=HM!::BD.PM]@^GL8R!]42`O1EX_0.N._06O"WWP,\=POAD#[8JFQ4[Y#/
-MR?("[$';1VNP7*V6>GD7FR+Y68,^N&P?O`G.GY'PAY'?!EACMOFL9%XRW$LB
-M2'AGMOZ+&XPU;+URN9\?W'D-6+ZHR5Y\[7_/)CNNL@J\UM&A5Q%+NN]]&.=%
-M$U4\8`_>`>'`,HH/SN[`*'XE]#\?44AD&_N:@Q(@E("%]S%59Y!(SB/1:].4
-MW5K]Z+_CFN-\O"ZRF5<<61,*,QBB<Y[]]R)4Z6X<LU@$(@\<0/0JG@,,<70_
-MKO/#O3Z(*!,57PEZH">QXIKL0[ZB\?,S(&W)JZN4#'B-$WN"P)EZU%:7!\\_
-MG(CG+4Z09+L97)['"&1WNL:^#0DW7G*"RRF!3,OP,:)>2;LNA)RV"3ZU,^R*
-M4.IG6(!CK#(+B8.'T2_W^NROX2A*1LH=*[VT&VU\\HRN/SG/#=KGH['/O<.#
-M:MD,GO^/']`S!X]Q"]Y&MNP8FX^)U,5ME6[+T>)FM#Q2<K"8-JK#9;FU53/Y
-M2E0?+T9]5T\UJ.YA*S9_;H<-71R!J*5&D,_=?DW/`J,WB>_S3_%VXB)5LUEX
-M>+7;'D@[U-(:=6'&SD-&)[Z=DZAX<8/0;,9:/#^/J'9@J"U5#Z%&CSR(T0)V
-MS.Y84,1>/W<3VO2T.].F:1;VG!XQH@Z<C$$(,.NT'KJS+)`=3<:-VTID8.9^
-M8_T=+C$W3=43@H3B9DV/D'VAEL9>)_,\(KV&\\PX%;;=Y/2.8S_ZS4_/=LX2
-MVN:NW,>H7RAPLC<R!LJ!G':,6J0X_138OFL,U)Z+WF/>FW?KW"Q0#G0^A/!=
-MP<([\FPL?J-D>"ZJB[,K_26\6@VQVD7L_`CR2IQ76S4JX\.6S6#&)2VE,7G+
-M3%:>?-AUK$ZV[*N&],3ZW.J+FV#:*#KV,^YD]6>2I*C$JJL2\7L&MZ:5Y\?>
-MFZC=+!FI!PQTM68V@V7$888RN<*)`:TP=[R\]U$&_C;4F:,-':'75;7BZ?)[
-M:->K&P^#J_ZP.M(R$//!/IKX:D:#WJ/O*#T_!J)VF3#.,JZ\9GIRTY"\23IL
-M[7GQWV+W#DZXJ?S*:M^Z^94<4.IJO:%]CN=[Q=&N1;J5O3Q6`BS@%]",K!&?
-M;D]5YWW9KDY8FPV5)@E1M^=X="Z=95@N+B?B8A2[V.&;T3V!F^:R\7J"K&^5
-M>B4GI=!W*.@Q0$I:WC\K%/[R=-92FE"N;C72E0_U$DRCA%.MAXU7G#%G=*5W
-MI'''Q@<<X4G(V:$Q1M(&U=S1\VN+`KH9M\0UV.@06B931BRV[Z),8AO71+=7
-MJ$3R;76XG2P433;&8IB/F_RX]_6-41!0A\`']7^WS230G[B72C!"D2C45-(%
-M4TT@`5`VT@T#`B;:$?(,_^L,01<6$>"!KUFH=&EX?'G-2+BX\H72GD2#6;J3
-M[M!IO)0^%X\.1R"A\;JB^=/["Q?9"(*5_A_;RO;D:<S.\/GXPE(F?H<ZJ](U
-M#?\S9NG">8MIG2$S]>8SN=@NGQZ!RY9'U7`WG;M>";K1[:9B$VB\<#)XCYV;
-M=D8C`ZWY0NRS5^#$]6^RGZ#%!X6[A\IPI9-IA:KV)FG'(/%)6F0^4=H#ORE_
-M*0>K[,L;Z_OVL8YXT+^_I!BDS)"A]8R=)C$#HPW9[!%AT8K$*`W/?%^($=7/
-M/-ZT&8!)T'',A*Z_B'#V'B]3DQ^DB%LP^Q@P=[K[VNN&\-&V'3QK#)OQF7R\
-MFB_T=B?K>K6-_0.T;6*KK4E4X#0C.>C4:EL'),%X?6]^.;BY*,:3(RVI;K0V
-MI[FDQ7J;,?GN#^M[3F%'KBU\L#)1LG0X1[*W:)RE3#6CW,.?@//J)#2\"S.7
-M\V1XS`6JQ\L>$'K==I'+F\KS.N7_RHPC6R$*9!3;CI.^%Q=1UM%9F-Q?P-S>
-M(&DQZ8'4\=.<C,/HJ%#)8F&@ZB*4EGPS#S.[@"VG2VAH</[Y>>PAJ9Y&'[81
-MBU!XS]NLQK6PEH;8R@A[%F-;+C15JNUH\4:WSVWW3D58ZQC'T*'*;JUU&XJ]
-M#N=&QG:27'&21/0F)\3F"IFV').61IE7[!M*A;^'0B$[B$\*?;3:B4PT!,MM
-MV]H<!/BV"UI4^LH<]ME.Y";=#23>A%3>-R?[A1Y@YT&.I$4SEF+:OI;\2-Z=
-ML]CLQ!48G=#\+[HFA=8$Z`M'\!.(#Y[H%J!SPR$VV6OSF^<;N#%^;%&+/.9X
-M<1/#3.YW.`TMZ^`)[L%G??@EE0P*+I1[JR1HX-+>6V<W48;&85P8G'\RR&2R
-MR2A'!9JJJ#]!"']A**4$6QD5XAO%Q6*3O;C([6*`T6C,ZC*YT4)O9?T[3WN?
-M>K/.<KX*KKC@SM&)C/PX<I)TYPQ9QJ"H[#-F*\;_P1?^/]4R=DCGPG$R?,?U
-MN"X^>Y<QT7UB(6&C']<+3O$P0D67E%B.%Q`:Y7PLQ8C$<%[>F!JF1=*7EX2<
-M&\7:DPEVSXTW??#PV/G7),\&,=;;=K]5#?].'AT6,RM<:`P/@U)IC%WH198Q
-MC8S]Z`=Z<\:7=5](-56M?`RKAS^<T4D`?8G*U"4F#_OX9=:>Z6_U>.S9=BA>
-M)FZ)9&HQ^$]0W`M`C@`MH[9.[]RRC`@'1U3UI.T)PQ?1`T>:%K'RVC:S61OF
-M96XXV.DU^PY,-S60)MG3"YC3OQ1/0^5!`.$YA<C-/)21IIC^036EE7LW3J'&
-M-*AG=[792*@NCKM'^8]4C-:2OJJ,"B&!1%6V*=]']4..@D@L8CH2\L'BQ9:^
-MI1_M$>EIHL@@R(=G'A:'QT<;8&&6B0)61_[4IJ!K'%5).TB*[WJ(['O&K_"$
-MP$-C#YE/FZP?AHLWGK#.ZO)7=WF;NSUC]+%,.U^W9IENONCJG0L,UFK*QS+I
-M%S&LU<X?IH[81N<UT'KF4QAJY!^TVX,OZF+)O'0S]/`@8#S<;DGD-9$O2?I.
-M`H&P:/23;;!B1`954#"'UI/_%%**3YB'T;)N/3]7$/FRS[<\[YOU5H"BDN3<
-M)!3V[R\)T-%(8<%WP)!ZCV85-#LS=>I;]C3FA<Y,R[JO4^E[6-BW(.O=5-Q1
-MXLB#+&Z[:<N$A+W'US"N4Z!9W^$5%YKAF^\;+9ABA%[S\ZJD@J2#QTI;V_X6
-MEU[2ZC+D3`8NRM<)KVX6WXQ1+;_B-\%TLS:$\YI0Y-;T;Y*"^MQ?RW&]O_@H
-M<V*]O-YQ`^"DI=0%'R4'/0G??9L3A,J;@]#QF;N$X+S+/',&^97S;]':*PX-
-MY./)F]7QH_=M&>E2]T<$T!A,?%YRAGK\H[/*_Q)?;TJN)Q11Z^0<PQ?[A[=5
-M_K2IX79/8J=QE6N/K^XHI]9IQVJ)9HTUKPHNCL.)O_YTL2^YY4JYEV#T_%T;
-M$[+Y3+#!T5"5<_O(RR\'%`]!05>ZXM@CO`,Q7B1->Q(S2S3NE6Q,$\^N-[]M
-M1#Z^YM_X?!J&J"7*?,7LP:X$1;"MH6LVCJPR95[HKIT&G2N8VCU_J>[:,:=I
-MJ#/6K>VTNSHABWO(Z7/Y-";,/35L^NXO69)D49Q#L]CE5QHC(,4+Q,T.9E6@
-M:5,#D!PM!]1[$]'\A\OH^![X>_)[X(P_1H3YA^>2:6T0BP#\<`OX=I&,1(?2
-ML7WQ4]NC\&D])_,[`,]4^F]_R_(,!I-!(`.QYJ5Y<\^:0[1&>5F:=3<86763
-M!N/,2PEV>JAC'AO9<=<S)]`5%4)3M\WZC1H:$V2BXC386W2]=)`&X'2M(Z:D
-M<Q_&JNDE9KE71_FT?$)MHX]_VTB3"C7RUFT>`8_-=]Z#%(C&5/W9CQ+BE0`-
-M.9S0/H5)3M.4S:$9%/._OL]QH;?'^,3RS')<,<\?MF9[#C7.+@:5Z]ZEO,KR
-ME&C4<'I%0M]O&,<O4!-]*19"--OG,F\]5GYIOLLE)A25(HZ<9:7"G9!X"@2L
-MC.TT(\O[GLGTJ6B8,X_T%VBL92O9I04.A\]ME-+)A1]T,UO:]"RB22KJI4A<
-M=;Z9;O(:PFJ"<EQ2P34WN7D565OJPHYQL9/P*Y+&O0DK3RI61Y:!V62A#)VF
-M5>0GL[;V9P,XS?P2[@;&REA!(_8PSB01DFHU7")L([$DQ&<\`-5A(EH'/YZ&
-M=,[$\]=\SCN#4*CN^;=T#K3V883?\TMN,R.2\4'>;]@ZS_72Y[?)_"W>'L7<
-M6S9N9LKFPQX5>+Q[H."G=U6,'0O>D]RQTDUN/$"'[M9/W[T+`N8A!'?APTSB
-MUX-PK>+,MGQ&37<+7?8)Z6O:AA4LBV5&3&998%K7DR'LO32L%#.]P:9?V-WN
-M5F"FOXC?#\V_(()7\<HL+0JI1%-I]Y[!MW[_5%OQ(-THEH_`&5Y5="?@2.^0
-ME^KICXCI2Q>#XSU)[\7J,M%BE,%9#(/;5&H!5ML6(*M/+*UHXU]<#U(GFTE*
-MIAIAV7%BBJF6EJ'QU#M"4C4X343C7D\K6(DS]"^KIX/PIJ;[N]&0_;AO"[MW
-M1Y<OY5A5N*`8TRS3%)#+,*J#WG]7K-$`?R)!$PKL'_)D/+_)9]CP:<2T1!-N
-M855ES+W_*53+LR!N,)C#ULMEWS"BJO^NL^/[L-368X7>GT_YZW*<EBDX@2AW
-M:J:\.4,:WTVV7^C"U::_Y`EU'%].%C/LT?6T4:K=U?27U/Z!?4(@>_/\5:_R
-M@.?#1+X.-.[U4RU-((0^J_)?%17?S*GO@<XJ""88I(9]S3MZE'296!9&-GND
-M@#I`[..Y/Y&2K/B@8;X7T4L=%T@XR'JUGNSJ3'(%T+%BGB\:KPTF)Z?==W"L
-M0BU!TRZJ\I['9_<YY_FI&EI,@H5^!!E%QL8P?"?>H5/`-LFI3L]0&&\"&M>>
-MK3+DQ&F*>4+\=]-4F,H*JJJBEFR,^VJH-*J&VQ55U?=10H7!N*"'0$E,@8?D
-M0<]8&>G6D=/Z?+9K_1DT?J-A(F!@1WXT)R4QD1AT^U7G946<)I]*P]2=QG[4
-M?J*3?,"%^*QR;#>]SV6%A?:S4VEMRJA.W1CV!+^`G?']ZBKBM1MXM7@4U,X7
-M^:-=#C%L<>8VH1\Y*&+2%M12J_`ALFD'S9_^S,=]FY3N?\74R_+_6+D#0K`-
-MT996(1ZC!"&>_NE(M;>W#?"*WR<\F;P<:,$==RB8?65C6S-",BY")BF^G<*:
-M^01=<XM?]+4FS]/T-$(T")W,C,Q$M:RV7DU]:<&-9,9*]RTF(/J3AY?ZBL9V
-M9X60CH*OP7!8?9J;3U9V1JL<,<*&8QK;5'8TCH@-C^-847XV9-04H:=1FBR6
-MR%*)#!MB6$Z5_@=XH43O_>&:?=^"];C^^CO_V)=K"JHI^[6K87'QF7-<+]9E
-MCXU-JIP89K=QN6ZV+HZJ_%\\^ZQ7M^RFI@CRYG!])\`F+C>`TK]HQSK*WYW_
-M>S(4V@?L.P5IF"2+BJF^D/-8"SE.1BXW,+[-XL."9%:OKI%"RDF>VR>>GEH;
-MJ-?AXUC\+B)TS7N7IZ#^P-1^*8PYL\([&0QD6L0FR7W80IY-&(ZM/`O,#(,4
-M6$\C/6FHI[\5ZAU=1J\#V.K?;26[DZ>H3IZAJEA3*FI@(S%>X"@T/W6W\/55
-M`'U`*B3[R1_O</Q(99GUX?Q%#&"B8?=:\25"I(,*BH-WQH>YH+QC?'/MQM2M
-MQ]E>Y&()C1,<Q*C(_[F]H;1:D/#N'OPI=@(S%I.<-[$$(?T6]UPJF^OHC7OE
-M5^_XQ*2/@*OI/*#`S+X^IG;6L7KD-GS'J!<@OEMU^$:'DTP^-"HBMTK:S!]>
-M\JZ-O^KYF1&Y,L$N+Z-X3L\`PK+H\0ZT.LH>'D]K/._PL&MQ<:^N;K`\:%B#
-MTD?I(+1L#TB/'3T_.P$4R3L[AY8GZWWZ50??!-3]]JQ`@BB;PX*,5L<!@VD8
-M5-A!I77"EVPIV4-<S!G/AAX\U7>-A_:I(TIALLN=V?KPE63I3Z#68#WDT#*0
-M""I&=IDJE4$?6:_-<ZT(#$/XM=[6W,:U3WMNAUWWW(9AI6FH1U'>4$-UWUDY
-M*LR^RI'^7TO'-RPH'381J9M:5V>Z9<8O,$<<WRTI^#]H,Y^C7-R=;C,NB5M?
-M5AQ=[P+%RH%R`9.H`>U!QB!YP79`\>/!3-*Q(*#Z09/T@DE/A&J@HD#Z26L<
-MOI9`2@,:;2Y+2P6<1@FE7QM7:*,N'"&"P:9@Y8N_>Y[!6`,1X6X5Z>`?TE3R
-MY1ZJN(Y7N3UKJF)57>OWMAGD^E4O_?+VRJ+/(,4H!@;)1&PSZRR(6S4(/UPV
-M;NN+-;=<SS1?&B@SN5VE(.;(Y;C^5)K21:5Q0N\8W*SNU+8859B7G#!W=G'@
-M_R?(M[&A#L=OX[(N_@=VQNSMN]LP;KOY/;9';9,D)@[;(^C.301DHW[ZS[RP
-MC,QA<^\@*OS)^&$E/^,1P-*RLKM36VRV@F#MC@92B[!X:;6=D9"CM>)77]FW
-M85FS>;!F.S)_5<TKCRTC:KZ!/YZ<E#Y5"S7X&:3S+(E56,A_C"KC0OK:?I$U
-M.6`G)7/Q;?VX;W+Z;D-*RG#-TOI+)T2S]PNK;&YGWM:4FU<;'-85I??B93/4
-MB^RZDNA^UDO)2I*9C`X`2<G)4?1`I3Z('T9,*@U:@R$<&OHT"]N`1-";&@=N
-MRO;Q^X1:;K&;]V>")LW'2CW'RZ+IT="*+5:Z.N.'/D1=]'H;B2'AN<37<BEE
-M:?:>AXKL+T*Z_9KOR7,/I=-+1_+?NCBO&6NVI^-ITR6QVBZC:97@K&2^6_JV
-MF(2A@,"Q3<7%_SXJ]:P2%4H0:7CG#')";RDM,^?+9U3#21D':*7=*RJD5"M#
-MDON*3<,;#HE^;A9%@<$+2BA7Q_=E_-IH9B+CM%)'22X<(N=-F[]F?L[WOYX^
-MO?%_!^NE$>+PX_@TQ)T?7</!F$4+H_`RK5E9.`FAJ"`/P2HAX?X<?@/UW]I0
-MC/&,2+%G&.0/N>#W1=_=&I%:&,*DV$-(EQ.[TY7,RU-I&A+".'68<*R6U[G4
-M:5"4/:5=4B@_RNQWM>EV[4%*:3QRUOC+JW@I=MUU#N,:Q'I/Q/FNY@-'+Q_8
-MR6*,8YE^C@U[.O5SL)H='FT^/@HDZ,USGWLF+\^GYGM-#M&W)Y/:@;7M)W/)
-M\EH6.PR'"TEJ\TE>8J,\T6"*(0L`QD/,0Q@8XX1YB!HX""!C0XCK0TJ\ON9Y
-M\5(R-SU;YR3\Q]Y$JLKBM(_QAL[!@JXPGA2V[E=JERN_#Q'E;N+I]?/:]@6%
-MAA1K*L;7+:TJ/M^##4LS[3&8#C4S\$V'J/!ZMGJLQO%\LE/<^6:M2?+JHHA/
-M?6UBQM&TG,"'$F`@EJ)MH;$_K-Y9]34,[\_V#^#G9M7H$N;ZVK=M6JKM3YJO
-M!K?P@3RYE3#I+LIJ?3:K9]?8+;UL&UG%32(SZRQ'VE<X:1@RJ\9@:1+I2_')
-MMS\*9_/]M;WG'DS-ENK9RFTL/1&*H:L-D0C9!W?8S*0]Y-8XS1`F![^&'@A?
-M?HHF$@-_L383DR/"7/"Z*+28:<UWUP6P=!^DQ68GXBQR7#LH2=CB>7_&3LJO
-M]_Q^4\@4UA'UVW>L;TP*ZNKJR\KZC3+J1_7%PT^@K<D<2&",;#$\MP)H$"=#
-M9]E]_\S/@S,]F?F?`<@^#Q887P6>>'[+8F1;+%/4TVS'*LPR@H4,,L,PQCU0
-M/[63`H)YB@X!.SR@X!/3S+F=\.DWUABBNIU7.WE`4%W[QV(N_'T>2R*0?+4Q
-M7AB5@(3UN?\ND$VJ3-H[MZS.LJ_^_[P#2N+JU[UI>>.N%5@A&1?782V0H>K\
-M[?:VO.OZS7J>I.KO+/30Z83I#NT5"=,!G2T+(`J`&(Q`!`1\!Z3!,8)CB/GP
-M>ERR"9^?CGUN?*E\M#JG.R/YK_^4Y6WWV[5I+[QQF6NE&L07E;V/:A-($MF3
-M9[U)?V,DI+">K(3JDLIZ<G*:FJ*T=0I"]/TR?2]'T?BGH^BTWRK+NMW[3=WD
-M)>B;Z0;YC&2-\$D)54AWP[]5$12!1$8I#OC&3X0=^3UCUL4UC;:C\Y,UE'G^
-MKGAV>S_PO?Q#-AO2[I3XQ__(=FP6?24:T(+8Y8(?"E)E:J*2@E*6=HR<[Z]C
-M@]B/I0EK2Q19]?G:7RMI;7WAKMKLM<US6;79EKIQG$AH7Y44ROREI(HJ$.Y+
-M69(?*H"<Z[X1Y\?!.SIITJ\]7F>A/OU>)K<>WY<!PR&0USEYX,:QG=53TAD_
-M0Y82G)$:PK*R*9V/Y+/Q_.PL$"YI!,O2\]3!BEYA\,`F"8)F<XY,8`QX$8&4
-M[J$8(CTU)&08J=+(,BLUM+`DQ/8,9\`?'R7"8/0>ZD26[Z5M"]ZLHGC[_'QA
-MY7:SZEFD_7S'S/BHNK*)5\?HYVAT>?XGC^1T?'[?17R-3'[O%6R`^3"-A,1B
-M<@[LR=,[IQ5(^<"AH0\X$D>>!\^M:)="><^[/J8.=0Z#OL[N-4'2UY7;2)_:
-MXWALJV0D`I0N^IUIW;-<E75E7VZTM!9DUHRI12?B\WR/'R<NEZ7T>EI<NJA:
-MFG!/JZHT&G-5M5(U00AM422K9@OI'Y$X$1`'I2(B?3`$4'IPQ`0!YX,488/(
-M.>104$;71QVZ.34/"R'/J]-R.!94"2UYVVQ:'*;-,?2HT"5(>+SNAT/%Y_/.
-MAT?]W.^?^J1]UZM[%B/44&QH$D8PY^/$C$F!\9WZQ#2$,5$@;!G9:T9"'H39
-MKOQ&0F,`F0B#)GF6XS^?]^^^59,<^4OO!UJ+GN_??DI,1+/0$:84$A`C.(D1
-M])26$[,^I]H^]>UR>;S3FY:.:C<:>8.8YN8G-(C!!('(![D&665K,E#220ON
-M20_(`]S,Q/<`Z.X=CHX6P?%YX#OPLAJZ;.JM\?K*C3FU3W90Z58.0*7O4S*Z
-M155T:O9/+-$/7D:GH6,.,,=]\)BAB/$Q0$V)H`03H8Q,"$(3,W>!)44#WMY\
-MPS%\^N]-FR'8?,_6?XV?Q9];Y!YOK<>LX$LX,YI#3_JX_^6)E<F7I(D4D4&$
-M:%&D54FJ#@XM:LVM9X@9M;3S:<#!LA/(I:PPE=`Q"'D0@\>.0AADV+C"-QT$
-M%OWF[P_3;0<P7;MYRW^Q\KO"V_N?N-#[_/T+7,^Q-_CXC[.?6K<WQ>AL^+S.
-M=[:MM[;<\+(K+6K*+53L[0$DDF"TP)`-@!B1233`1DS(LTG!14X(:=(L:SD(
-M?@UOHG!'#1X":+-3?:_.8/5R>NIH3FM`CZB0R)--34;-"M#8X'!P;<P\W3=O
-MF.KPZ-?%\P#YGA#VW@V&`^9>VV:R*A>@297S%1F!T4'F^"[C#R7W67;^\U\'
-M^[_&=_]I^A_Y_V]G\WYW,SL^'@^=X;_VY:*BAKEEV03E0E2G3.#4C"$0E>0,
-M30/,:/;UH-49*'B6CQ2E4F20;0]DL[:VW>VK1R6_?W-S[#_/K?@^1G?1T/MS
-M0S_QO4S]@RJK+GZ)G,UK-3,BS@EJRM*'882TFTE(@R`[,A,%10AT/2FJI"<F
-MUH*<G]X;'R/^.R>F?9,_R_V!^Z-#SNU;^#[K*^<O0N7>)]E(N7B_X\"\7AKI
-M>82&+PD-:S**:$.T*I8A3M&[;"(UCBA$AMQX`-%K+87$T/4R=]RCY-9A8W-(
-MV^C..RYZNN43Z_P9HFJ+V?9B/@.SCG)X\.08E!R62-2,+,%`'GS_*R<]J(99
-M5*A0+D(SQ9AXU/5]5/6/'W_F?+_*_TN?]OKD/Q>E9SXWK<V4DU\^8@R4LP(D
-M3NX3#"9,!@T;\,`,&@^[_[L-0!Q:*4XAJS<[B$)FG$IO'4,YYU-+.CC^!VK/
-M/H;]'XRU3%O5L[M=7YYG]4Y?=^UGQ]7L/8TG8TUP)-46R"QA2$L`Q60SAFT)
-M"I,LZJEAP9J9GM_6?%/E\_+_BM^6*PQ3TSF^Z_/[8^2'9NPVFX@V-`;F87<A
-M2;H<(*0,4[M^C4RAA5+;S+-X[R]S@\,/N?F1W]?7-<[^]M7>BYL'9@O(/UG[
-MWJZS:-JYH.%LR6[0K;F>]M"4>.@]H?'X]:-9B&EO'K0&#!-`'Q%/#!P:VQ;:
-MU;!%NVXY;A;A`M'@J%<W;5NT?.V__7Y"_+^V2OW][Y6A>U;]^^7;PK8@5ZZG
-M"\$"XBXAQKS`D$$Y6IZ+9L$(`BI4\H>5HI/+W';YO;_5GZWU]SXGW3IM6BV.
-MA+X7,+JEAM>S%,+T#>J\ZJ(6`&"(K)#8DET*5D*EJHN@)@S%6'@LB<=Q-CV<
-M9O[_\C?^M_@]A_DD(;W^'EX/3+=NWAJZ:LEE#52R+F9JHB!D!F(1@,51DF89
-ML*4$"@6`YE.:"0H0,O7,O7];OGP^Q8AN]3\DG.665-)DER23*"":#"&F=W:6
-M9IG=,.S$%E)MQ'@B:@RUC@!P'4AA4+A/#.@PY,3.+'!G,A`X:)Z.W1_:R?6^
-M/A^B.\.YAZ6&S245550/%G+'Q&.O$\XYQ)XEU?'UB!H#Q892FQ!*HA:#25(9
-M994J;^4XS)JIQYZ.[I/-JU>;L>F&3\;\3?7YKKQ/+U![MXNW++%PMW&>Y`0D
-M)!<&=!:@SS41IV+0#L`+%).I(,0FD>P2LLV.>71:6I^AJB_![$F:+J]7:CDC
-MD(H1R00.!([C.,))),&Y&J:!W`[H##+%<-UE,IC[EFM0$VI+"P:DPIG1@^T^
-MJ\=R.WL7$;"'!Y%$.I"*1VD<UC&Y:W0$I%5([D2*MLA"3%DWB+"X+O0WJJK;
-MW#;?MO[P]CGZ$Y^?Q'3^V]#];:?OULO3S\7=[._=QYL\@V<FS'H.4LARC"%Q
-M?ST)88&H'2\LXD:1,(C5!R#S<.6>GA_`?SFLUFSPKM3T-FD*@H;(4RA(;,#9
-M84BR%2,8I#9BJ39V:H*ZLX=DV=7PML>]_*YO1[1MF_A-S?Q*)B"K,8.+02B&
-M+`&&*2HPE28I!I#%PQ5%](ZVBX7T3W#7WT^O^G^57L:].E*HY]O/ESNWF<PY
-M\>C'GS(RH<1H38!0$U`<A.<&/18)H*.68=&&`;-G,YG/F<SGRH_<'9\WYOXO
-MM_;<3K.OKQZM!UY'7F%(8!,TCTD(N*2D)0"XI46(!44AB8AB8&==V#@^AD\/
-M=/FZ_\O_9@L<6Q?ZDN5")AW>:8$I@FD<&=F+A5A,@8K1,AV+1%0AP:`Z%,#S
-M7Y^ILH2HZB]QP^'\CR^]DEEDRS#K*G>>>=W=)IB8.`L,+P%FS,%X)$02/!R$
-MWE,PDTS2J9H;%81BG6OS=[?HW_.ZVK_6_\^O^5N^'=N]E];=WGV%>O":[2CR
-M%>[=N)VAVE4O:">50F![4.-0:UA2NA[2(\C)'E[=9VGSK+#R'D\??]#P]_A]
-M<0JB;8[=1FW!2;<@]5H#;(BC(;9%),=)CVZ`6>[MTNDZQ:*-%\0ZV3!?KOL'
-MA[511Q6)&D,W1N#<;@I-U!1&W`=R153,4)B,SMC)3"D[-V9MUV'I]C[;[GN[
-M>GU_#AY'1FM:RCIZ;,/7Z8]>RI.D=`TA$"=*!0$2'3`DI3EC"=(=,Y4A@69E
-M#;-S*80X(0ROV,]T@I0%F>8A\4^/['C\?UWQOOA\TX3J^=[GFR\<1XR]JS/'
-MX\#Q^,\9XPU/V?C1R#QK3*2%B2S(:IJ2A)0"PU!JRF@\/9[>YMG5V?0*.J=4
-M39LU):+$9U06*;+5JD+2'50*!"&R0LBQHJ`5#9#9.(VN'A-.K5Y/KNYZ_Q#B
-M_2?*]ST]I],XG&X''3@8\<JPC,P>`<4XV;,30IQ6XXG&<4I]_,B!T''#%X\L
-MG8<MA\"Q19C.XCP6H*.?Z`VS;\NX<9@CAN8.YZ&`!487I4\/3B:=FM*25,!T
-MCT21=-CCZ_28=(0M(JL_=__?!]WXOI<G#YBU)<N4E"0:65#(D2)6((#>-%#,
-M:@?M$*-XN\"MX5O-V_?1ORW-JC[>'CO?28:=G<F`;@&$BPV&A@5!18]5B2!@
-M4%`=5F/4]755#TG5>OTWRNGVCZ6'T/5_#'R#L]CU?-/0:=QXG=F9NL@S=E@1
-MNS*#!;=@;A"J0P'=A@.)MW;C=J/B;MQN\7Z'T;SD-LW-L]_[C-@))YLF/+A$
-M*IREZ2D8B9A)(&I9AY`PD>:ERQ.99''2<9V!SN9AT'/P5R-\S9I9M2_$2)F%
-MK(&1?4HI94AB6M(]\FDFA`F8UF.Q`B.!(PL0)P#=..L`X-$H::99XXTPE*3%
-MZ_1J4G7U*L'=>UP8.N<%JBIBJ:A4.J'4/%"8#D)L@,I@I`Y#J=1J$*`2H"BA
-MWH>!0034$RG)YY\M&KAK82(B%$6[DD,PW1%!NC<X%.YW61DLM*5$CN0V1DAN
-M7;&%0Y9AD&V-SV=EM[.STG9M[O2Z^-JO+X7W"8S%!D6"AC5$*(""0F(CU@99
-M5U2%=6,778Y<LKJR.O/#U;_E]N?=')Z_=WN;=YEWM'63,WU-\WPWV1)OLD2!
-MOLI5F'8)4,F'=VE$0A"""4A%*57HBR=?CQ[\>]%%$=QV=D9G9J.S69V)V02G
-ML&8)V`'7&0.)%I`-B7T6M*L+IOIT\^[W<,*VC:-J;2S:-H-DE#0GA$I\,F$#
-M@>&$PD</#+X<:9X0(3WKU)7#+%E-K8VHK%ZDR5(D4CH2:12.R))$!!2AN1H#
-M=($M#NE-S$X'L6""1H/(H,\B4>JE?CU[.SQ:K_3W^K\7)9[^SLFRK(6=NFI%
-M44,I,D!@9-"LA1!9,F%,A02DPE\04AS&(.>S6/,\3WYZ.'?]C^5ZNF/>ZNH[
-MO27P1=YV=C2=G9F8TT=@/7AB!@!V9@&(TP10GL#[$=CAWSE[!EHVY>?WN_M\
-MW<?.^?]3O[*W>[?HHI34SO0]`4!0[NT[!0AJ&9D@*&`2!J&)T,)4.BB>=(WM
-MC"074X>#'P1UU%%%?C:-1D<84FU`B#9`[5:VP$@;8)R"MI''?@)G:33:27@E
-M,V*<P8/-P9O3WJ+RLU244N[4E3L[5"60*"F4!9.!`0BR512R&4BP&("IBEW2
-M8<:H53B2+Q952EFWKO6Y.+CY?K3XYJ)R<X[N'`UA@Z(C@-)P%X`$0\+*E#!D
-MAD@)F$DB:9W3M,3$I>PF':/:[7F'5-_?V+$S[CS\.!Y_B5QQN/"XV&5)Q7A.
-MR'B)PCC:8#H1JD8B,P324)QJ@Z*'C<>.LM;?Z'K'9[_/HT:+F*7:I#$PPHQM
-M:J7"JA6%J,4(=63B/7!Z\]$;"I=B4]<&69@F`QG)TP5S2KK2R"LY2)6MK(?5
-M_`^%>EEM)I`DM(BE4JU!@&\[)#?&R'!**!6(7>"1B<8K`)DS2!+*[I,X26I2
-M5\`1YD2/U+>\<9=TWS;XLP-#H=`:`T(H"30P*40E%TFBIT2!@FNC,M5`8!9A
-MG98Y=F7EA@THPCC2+I<-N]-BFVR;S_!W35*2B_1?TPI*54D.U"(XWB?$63B>
-M*;,4P79(85`&(9#5!4BM!V(#4U.R9W03U4E)=IH[L_8KV+$5?%&8B!M#;Z^W
-M&-N&+B-#M!:3:!6V*`(0D@SW42(V=KHDT1BED5V]!Y9I;LO%K<&_RX<.'-BS
-M7;A=OJO-Z#ROC\KY4P"E\H^2!\MJ!Q/+)080F+,)L"O+EF$'EC3E'E\KY#T=
-MN9XO%\O^/EC[IEUY"6/3FU-6,9HV&2`C9@2",8C3,($(-4&@N8'$>7L[7QO@
-M_!,WT,PS.JKF%06/H5*51(;,$8L1`L0ALDV4A20J.=0&;5JA0YT[66YGT8_>
-M>UOF]OX8"WQ,;8VCB@ABLK9B'6E!U%UFL`-*Z)"=1T]4#MO<M@=OG_@?H?A_
-M1\&0W,<3#+%!,)=+DIK"B+!`LP+@18%Y%D50+AN-,IR+F)D9+,&W'O;G!O^2
-M>"?O]S-KZNOB>FJFI%105"35`5#,Z!U0,B3*JIA%("`LG`JAP91<GCK+?\/7
-MX^?W-_=[_-V1W:31HOB(7H$06%R+`62Y`NBD9+H+(R]JE,4M<L#C:J.R:#!@
-M@8)(B3=ZVU,]PCCJT:[A8<+"9D5G'9P2`0H%X12"(LAA%+L"A)*DNTE1N6(:
-M(5ZK#K7R1V#:X>][FYRW+N]PJ&R<NIQ%.I48E45"253$RJB4D0`RA!2&0L.N
-M9'!EP5V>/W?N7?ZURY[OO79['RH._;M-M-=^6$;B(W.Z('=F#@!NS!,$HW5&
-M29FW6C=`6XV?)WWHST7HS@=]&7.0YR'?W?#^IWO1M'+M7,=TLU6K>\D0$BV[
-MN6RVG3.>.D]KQZT&*Y!H#4^.1E/'!E11@!;3""TK:<=EC+@0>FYM4[NWL<(D
-M19(H\<DA&U>.31EHPW&49CB[LQ<4H=PKN1R-VL!V2$FD2"0C"/$^.52CUL9R
-M[\K\,_6V?8_A>7O;V"S9JWH6L].DJ.FDTR:4C!RHI-(&ED$!=A"4,"@AI0I)
-M41%)IFEJJB+F<>>FDK/O>KZ?XO9YSW._.PW[]V[:;C=6Z"MSNB$-UNLD)"W8
-M@Z&D<2C<5N*=V;MV[N+=N[[W#O\_VWU?>UM8GIN[\**A5((D544,E0P]#IFH
-M3"$:"!V8H#("S$<4Y60YPUF$$5'(Y&XWW:M^4XNL;'6S38,2DCEDDP2X1Y@4
-MT$TR$,3`),PTJE`G`:2DWA54[^&</+ZO-W<M<N/@SD_!]/S]]7R?O_5[WK_=
-M=WUN0P<;:V#6PWK]TO)!?+Y?:^A`6T05],*#9*X"GF1H<LE#H"B@NU/,]%YO
-M5WNCH['"GSG3>_/<QFW@8%*;C@%$6;4%(+)A#XTYF4.9BDIU9F5(0TUU3!T]
-M7A[_7\I:.$[/'LF;:B6U9VK4MJ$$2*4=I6E2)9$$K#"0*0,$I-\M*R4;I#>:
-MM6IRW&_VN'M7O9GO\MG+T_8^GS\F_LH[#KZNO'*,&"NO,#$ZX**`E.N,D<%R
-M7J'KDEZ]=.!U7P&CKT;5O9ZZ-$]/U]?P]8O2<1=DT[UYDB<=VG@B<0F2)F%)
-MQAD*WYB&"4<;(,`B.)7;QCB4+65+TE_4LC\'A]SI7C(\=C1B'B,Z#Q$0T2<0
-M:#,R3J"%>P"D*0[$J@["*@[-=G1I"KZ)?1Q<GAKM'MGN>UTFHTXZ#&[>U2K4
-M5+X5)0*"DPD610+`7O04142I=ED*+E8E#A=J]<NCRU\+<UX=-=PNF1663-W>
-M%WM%5O*&\19L4J@:0W4FV+,B1P3LW80&62XD1HD'=/&\CH)&DP/>O]G?J]?3
-M.#M12J5WE4I(T<N&]-";QB3?`R-.^:R'$9@-X),)$$-*TJ$$KN\I*2J*-:>$
-MO+9Q=_:DX)<N`EF)C=PW.^M89!M2@HB7>!0;H<D-\)9BTP*1W]]$WS=W]^E[
-M4[_/S->J<7/B<N[T3W.WLVF&4;3;%M2C;MP<&J3$:`VRLZ9@<`C'3-&-&R1&
-MHX"CCTS45[!/V-/S[74:Q<N&@N2X%V`D`Q(%7H!@MTB&!:L5&X=$T]/1?@.S
-MY/F^UX-\S7X\&&_APK;>=Z7SJ$J!S$4I@1R`.8%`<Y3(`Y*FB#(<4H3D-2BD
-M3IWQ.FQ8E@@V$=*W9MLC">IEX*;$:45@PQ1HVL]EAM%ITE+MC)'$*:-LA(I!
-M&$8J[@\<5:Q'A>0>&O'N'F:NJ2;UV]<G4[H33$MO-YK6@T;YWNZ!WJY"$[HP
-MLC)#`%WW?M8HWCN'6;[VKGX:W/4<=.G157Q-N^%R]*"13899"I%BEV1`6$QD
-M+I!@B(FL"36-*NZL0=-5:KYCR^]2U.G*E*I7E".J6:9VF=$H\!X2S0<)@2EX
-M(4M"<!B%X#3)$JE)4I7>J6DIQ5^J9(M..,C:.*-1NXY&$8Q2;5VSDY#`4+0F
-MU`VP$!V"2C:VA*,MRJ.0P+=VL1W.6V1S3#S2RRJ4E4J3L*44YF.^2#?8VZ34
-M4++0IO"ET--.\WY8;H,WQ&ZV:]K*+A=![A[GCW?H.X][?>7K+MRXL,2XQ27(
-MI%"%X"S%"Y%`4H0$)A>(+-P,>IJV^+7PGNGI]WDT7Y#DU<0\1Y3><.#OUAPW
-M[*.`.`7#!]B5P%RR0Q8F3,E,X"9Y(3#JZ.IT(U\E*><ZGDR6Y5JMCB*^&-.-
-MC0E7J%4,&%V+25`1"D)B!7>Q`""`0,ZL/7.EB1?.EPYN+E+N_?[=Z]=)&E=Y
-M;LG!X!PF#?OA#A++5)9B2IOA.`-2;\ZRQ0X3A/2[7A[S[>[X^4W>7><9BF+4
-M*Q#:MA:K$ZHZNO#0FO!K2NA"ET]5UR%`0U#&6F-<5!Q:#I$Z=WR^#OZL,W3A
-M>Y>]ZHPJ@L799DHEV2#)%4;T><A9(4!93'&BXEK()N"7>YR=RO/K0:S;ZVX<
-M/%A2XTN.*8T&&-+#B=<9+@-'39`/6!J,@ZR$^U,S!<MEA9TW481UG$]CE'L\
-MOSO5OZ]9CZYTW2=+Z\]+CZ_3A0Q2Y*2GYS'$*1P"@Z8.E@P4V;;=MPH=R574
-M-O?Z*:R.CE^2?*]WNG3QXFXXF,U$'7F!A!`G7(P]<M&0XCUP&)BN-HUT5V22
-M9Z[5Z:46+IN;7'U^&8[NON+B\_L=W8.K9V[.3W?D'N^Z7ISTG=J[LS#N.[+)
-MH[B)*\TAVPF(4>:$H92D-0TLE'<EW&$=UF&-6R.Y^XCSEX-'S/N_SYZP>L!Z
-MQ>MAJU)H(GUHD*%]8;9A\>U(&"GK#]F'K7K?:>MF9LQS#CQFPDEB.SAQ=KN;
-MG%:M;F6Y;MA;II*6HH=J0$F'8I=V'&&*6!T,%*I!TU%-%-%#VF@$*JLK(JX>
-MWR=B68FPSF&4$)*4G@Y,$PD$KIQD!,[H09`P$0+P1VPO`'@[,,.#T.\X%;22
-M7J[F%^0V_*E+$A'(6[DI+,TR221+,FE0$PR3$TP!2;YV0ZAQ#A-#&RM_#,R#
-MR<=W#P[W6Y.R8F[C>L+LNWBW-QN1$EV,(WJ`A%D-@A>&+3>FE"]38*B51@'!
-MCP8+PZ/#V.]YVOU>3DQ;>9[-ZBFJF#JH2*G14DJL^`[-4[L5)F@TR01L,819
-M"DC)E5`B!9(6)E64&$!`J80@NWK5IK0M;6N'%FB]MHM?B?I5])AW=QM&8>KI
-MP<0H0^R"BCJ"Z>AUU9!J;/7^3TFP[AXCU.][7LNG2XUS&6C/&KV-C<SKSC1!
-M2:"79*830$BP//(NPK((++F@,3+=OEE63R>IS:O'[7'R<$\'!6OO^IISSZAQ
-M]=R3(TLV(4AF&8"A,LZC+KV<0-@&0%`0>S,>SD'H[\##9KQZPU.KTLWIU:N]
-MO[VO=Q*;IHN8J"PN!BA+)+DLP62)%-BJEF2\4QO+U11>]ZKJ8%SBUE^V>CV^
-MO?%QV\<>O2I4O30,<;V$)/.)"S")%DNQ:8%03:HC%+MS%P/1-M];GU\_N?=O
-MI?)[?+]N.GEZ3@/!EGEV3,SS0SI,Z0I4S<T"H%"06"D&!G9M8"D@R*!G2&68
-MT@^"TUI[I9MT]RW;[O5W=K@MZM5!11CG=3J<G"=,(9)B:6!.)!+D<7C!<<<<
-MSAG'(XAZ>'IRST^]/5R\WAZ?2WC#6G5O,;I,1;-K0HA=NEF%D$A9DB!YU4I*
-M%A<,871V+6O>[YV/%K^&?/_'[^G/+`PF$<4*(F-1),80Q0$`PM03%DL%("D2
-M8CAMEDW*J8XY<"Y2]]'9[7E^Y]S@WNX]SSAY_E<3E<C.'(IDXQR0R#)3`'DJ
-M<@FF&F(/-11/`>%RM-N\/3Y>I8-+1TC2$C11I#LD-I)+IM2FE>HLE3`(NDFD
-MDHI.ANDH3!:VZW-O2<VWWJ^1\CC.MAMX81H,#"8)%@@8$-*2-)0]0GKSU%U8
-M&G'J.DZLX&CSXG'Q\_EY/%P^/LZ-T;C-=&C=$-#3-TLQA2;J*$FV6@)`[,Q3
-M:61LG4I"TNP[*)-&T*T($$B/.LM%9>,CM7<[?O=WE\L\E^SK;INO4561:]H.
-M--.K5*SU1-0B:5`U*$4U)$FG502U.,(&@F$R06W1;M,ZP-KW,2(/<LU:NU9Z
-MN[QVK13/R#B<"N7(Y<@W\LT6'("Y80/1F-91+(4`<4>6850&20<6RY'+9OX%
-MW\.[._O*39R]/(9.UYOKU&GO;.S/+.\Z<<@E.)A,$Z9(81"R'&$9#C+D&)OB
-M/?LGB\BX]%<LU"?4*)MG3ZT^U'DCDR9=/$9*)YP0B<&)P)T,.[L"&2">=V'9
-MDA)IYT(E,I)+,^7?Y>2[VXRN:1L5_=S6:?-GL9V-LS9&P'LF0NLUFA.Q#80&
-M1*`NAH2%$4-"6==]!KW9T;V]T6X^@[AXGA-/3;3=V/7M=VLPW6X#H1W9C0%!
-MB[B<S![$S.`.)1D;R%L(Y8V=2Q1-V\N++W>S=FY=34ZG4-4LX5EGIJLC-3,,
-MZI2I)FD9#-(1A'@SL2E#.G'=#50(/!D69Z<.&K!O:I:Y)Y8XT16(E@>.-HU#
-MMU@8.W;CJ-2]$CB)L@90VPP;5&F<3)\`21R.\F"(\/L6-B+>NO%92C(FC0B-
-M((FZMNI=ILP3%-L(2!2&V!A?!F68B8TG=HV2(V49''H&1HZM:6S[SYE_!EQ9
-MB\KVQ*TJ!22N6(;Y,C!-X1OEP`S,6AR&@88)20)22,5C8B<S>Z]:O>KV+%LM
-MW'N$5B)E!X*P,Q8$ZO8]CLV"FAU(RQ;'LUFK3V9KQ^38;KQ^2.'!>[W_-\KI
-MW[F.Z,N7#07`T--:**)*A-"+`$#&J4"F1DO12E!L-F:#`QNZ+%%]C1K5L^!B
-M.38WEZ_ON]Z/GO/ZG:S;FYL[ES*9+H[O=+MVZ@97+KH,'QR0ODO+(4LIY81A
-MU&&8$4>5"9U=:RPKCJU;M]-]DW;TDLFL9IL>:AZTY.MBB`XZH;D\GE$W)Y1`
-M<BH8'?<2+C@Y+*2&H(),*LV1C3$;&Q)+Z&+:FDCKAI'2/;K1;1<1TJVC!Q#(
-M$E=?I<PM2!0F#TR=1U3'3U>3R6!*Y%;7I=3KWJY=(BS:%(6;1-*TS5G9PD4Q
-M!5H,X;))3?(4,!NM^8#(4#2&+OG$2J`SDC8732P@^&3"_%-Q=[W$]<.D:)HM
-MHH0:+,:)*R'3(9#B'3"$O2GM)TDW5F=/KGAZ?:T'PZ6[BR9-6HJ:J-Q$1%&X
-M[$97K0:`"591IDS1K*@<1VUF/L2AH#XL?%@,#;09S#=""NTBYKJ-Z:V"MPQ&
-M]O6]0L11#Q(2NMHM$D$:9$8&ZD4!@*!NDEV$$#=9NL*8D-TW1&;NDOEUST=>
-MX;2FV[4V6SM(J6VD&*;0&T)3(5`#902;(@A6U0L-FIM*;4KK:LY]&A$M[M9.
-MQU/6Z??\GP>AEWZ>79M6K]J^)%M[5M-2BV-;9.G":8A%!A-40+,*"=29I$>I
-M1J.!S-1J-<=8-A;'?-3NYI8S(5Y(FBC=AVC0FC`KI(83,[9R3HDU#"[0S$`P
-M<DR0-HVW!DSN\01*P9().^[7U1X[_+Z^#C,I+EENR/=GG>=GD)C?/`<)WQB/
-M`E"`T30,!P(,G@F:#.[RIB#30K.#LE-=N2%R@GVJ?7W\9TM)%P\?2'0=2'5&
-MR-0Z'J"&1V0E)#U&8N2P@TDYI#FD8:XA>/O^Z]YV>3O[&S@X2XKUV%X=%UY&
-MEEK6H-6\B"MY$AO@LUOV!L<S,@R'`=WW%BE)*;I:3(<#?G`V>##AT7ICM?-K
-MJ0()SBPWRK"C?/`4%_S-2FE3$LSN[*4F@F:-3(0VL*-D;5=Q`=&L4-">`LER
-M$@=\P*5#(E2$I3`387=R,DCDPMYO&W7.P98R3+>DD16XRK<;G=MQU.D-T&2X
-MH4[(6`(02$2DA)6@[O<N71T\@H\MCG<GE]HX>W)'7"OI.]<"#U=>)#C-($-'
-MQH!A>N:2E)-%)W*Z"%=W:"1!(M6[<<!1Q/%;MVR7A.7L]@[GKZF;5\O(.G//
-MO'>Y#DG.'+6LUNN4ZU02"ZXBJ"CY@FC+S0Z$,)-0Y+`'FD)\V92FLUJ<.OL'
-MGZ\O;W>,\7:[FY?$QQQIF`LQIH2&*,2#)Z#%BA$)3),8&*.PF)CA,3`R6!TG
-M?6T\AC@NW,</<VPM-M6B4F)H-*.IF2FF=QGJ.&"6[,F@D<&20X2N^`P#@1!M
-M5K%HIO;O6K'H[O2XZS7MFV.W6U6V"V86&.V;6V`Q!";0P4C";<0!D-M%+)'#
-MI'MW=(2?V]D@.\'Z152:6]2CJZ^H8=W!J:KXX05N>Y>2X\^9AF<PY\N>6%+R
-M8"$YSSD.4II71%`LO.B6'EG1HV0;-5S/0'EO0>^?H^]N]OHY./T=\IPQ2Z71
-M,=BB\ED278%"2B1$)C)<8L(R&-5+B4R47"_43CJY3=8'OZV;'P][T?4]3V-[
-M?T\<^/&U.)Z1ZG!-4#U.PBH"IE(P,A@)#)%)3(5"9"(U14C,N"IE:THR%4[O
-M@^%VL=''HQ,3%QQQG->K72T+K5AL4+:`WIH:`2%UC)&!=A%(D+HI!`NA25+H
-MP2]`\VM->LX=?I^GX?:Z.CWO[V;OT]+;-G%CVML@/=K.[7;;%UU=>Z7;HURZ
-M"2'=V+KXX!Y925\L'VLC`%+28/EK,*P+B=0NU@NM=%L[5O3O*Z=;COKDS<EN
-MS:HHH$ITDB6>=VXAQJI@>)-`P(;UXYB&+Q>)QH]^"8G((U#9U<LLGI\:[6WI
-MZE%$YD-/)D++V2%DLM99[)9&SIH*0J#G423.,*9*(&8BYI9(6&@DR3%2&2J*
-M7V:;_@ZW+8O\2V%'%'8B(X(B@.Y6A'8;2-M-M`VV9FKLUE,IMF(*2@)'23D&
-M*W7E1&$&!MF3NO/AOW]WG;7$IC%MX<W<]7?W+)R54TM2T\]-!/"B":`U#3NS
-MLS4)2;(,5V4P#*<IS'E1PY9RQB^;SZ.[N]7S>#'U>M%BCQ0>*.,2L!%$XXS.
-MS$43.DDPR8&<&$$-`D2*:$B;DT=GLF'P^/#V/,?<##`<,\7$QF>/4L6ES8D+
-ME502ZL(D"XJ0$A+@6$R$]F%@B51&T:(JI.KK]O\[S?>[GO:V;=TZJ=RBEJ6I
-MH#EPUSV#L4YP%+*=%1$#(<RR*'&H0J4Z-.A%$W$U[<XMW=W7]?'']J>'T^Q[
-M[T3;-AF*N:JD#/1`R`RF2Y5*A41F0Q@*"PR@+UTDR(4,4`23@.YG0AT63,TN
-M?K<_1US]__O?7[5KXW/2-$T:)?1!00#0*D$DT(BB`P*ZB2(.SH9!$-62KQ.A
-M%@Y%CBWCN8ML_E%KM]HY/T7RS/5YO5SN8<SG<\Y\PYH5SJ25.<!J7$><Q#00
-M/.*$DW<PXEW1ASUS\6>#F_.W<):X:SVNYQ']XYEOO]4[-K8M54U,J2@*$U+`
-M[)W&*44ZS"@)3G$0)"<Z(RU*:;GCRF0BCK9:%V>SQ\9Q>E^/II>3'&-DCTW1
-M*2A*DTJ$U9$H[EWQ2$`6_'(`P4W5OL6MELM!6R.XY#'D%,1[6/3VIINM\'M5
-M_PSSO<9#U=,T[74JM<\M-:69T)O&'M>T.>UEK,B!,CVB$H2!*4>:%I#(!U:+
-M6FF?4+E8S0<@)75<XS/M5<>;3U/4X>=UBH\&>?!DY=O/(>O#@!F3*`,F#"<"
-M*!P6HI(%B!DL6,A$DL'`!E5%&67`=O-[QWN?7Z=[P_;'^MUR>?J4ST\F["BR
-MZJ*K)G)&JK3LK36F23)K0!>T>UFM0L)HD-D!@'M&S$P/:G),]I&:1TG`?\B_
-M#?AG?^)NUO&]NM;SO;"7EZ2]Z2E%Q"7&"D$DO54R*`P+F#0*1DJ#N5Q)J]^Q
-M=MG>][H'9Y9HIGZQ8W(BU%;MRRC2LTHA,2DDANB(20W;\I&`RI"6\>'`Q-I?
-M%G)X(2X<VO]CMB^)WE['H="MH8,$LA+)*RE:52A*F$!0;XD-\,AOS,WX`8.2
-M!#O:C>TA(*6_N;9M'5ZF_A]+V7O7Y9>;(T1&A$9&-'$XSC1IEE#1$04%*0O8
-M42$.V2VE$3*)U&W34FOP%92S;$^*CZ7USR.O\/L[7?T-G0VGW<UR[=MW7=T8
-MO1VG;,%VF,/;%F8!VB=I^>Q<4,HFI%@D.(03B8AQ4TJ'$CPTG8.QPZ?C?E3Z
-M_ZDNSY_NFT]W;V.LVEM3LVA=ED&MJ[&0A=I020#M*)2E@=M[$N;8C069M#Y&
-M2>.+36,\SX7F:_K=7R]AZ_JUO>OW.(ZGJ\5;X6Y#F&VC*9<N7'?8RB1^?//V
-MG<'=&S'#N0[JH'N990[B^I@8!!W9DS8!,)EA"_APNYWS:6#9NWO^GZ/U3\WV
-M*U:$>S(ZDT,H4F_O`-]V11)-$9`9"XBA$DT#'0,.6"P6$E8;>-D7)ZLG!*?5
-M^ELEGW?Z8K?[\_ZG#!<4%]QMYOX/1[//Q>0UTZYQ=R+PZ]8:Y#7$@L!8)#7$
-M#4&*^:(BD(1\R^;Y.:\&!I-AGF\W=LSY/G7'R<FQ\;O_`\]?V_WA]@\[S[7J
-M\SB+?=XKEPN9U:Y:+=QSB:RA)!=1`>6S!/*R]48IY8@A(3R20'ELC@9L;FX-
-MP@QBH."A#CA!P2@1<)"RASENG2ON,!Q^AC(3W8&4A)^C//5EF,7M?:O</%/I
-M#[[T<O.)SKVT9VWE[99C)2C&$YD8D%`23FY4HD8%(L!ARO,D;6#E7FTSB#CX
-M^.&MW<!+^6>/[LA\'@X.PFE2)=^932\V8'9E,Z9/F$?'D@#@Q10[)3%=Q&0F
-M(%!,)G0.$Q,!O%A1R2%.WV.WER_<Z.G-#ET*S]8Y_%Z')S6]D]G[,Y[W.)QF
-M`N!G%'#C&"RI@WXED@;)3$>47+!Q,BB>1WGH>>M8<]G/[CT'V_MF?/_4_OOW
-M-]?/IY;MWR'>;]YO@S`WVYH#%=VLP8)`MV4TY(&#^/.ZU#O#1OMYM=>_PK>3
-M9%V3WZJF/M<F?GR?*]N=29KT[[11!;5-#3@BAG10F3,<>38F1(&9F/(PT6K9
-M)B&^Z(AY&N,4)$*U:<V:5%[J%_!LU'FM9X;7Z3\SY'WP\/G%;Q<^BF<QA0Z*
-M$XH\IDI$R.55X+$('E3*PF^3)D,E,F9!0T]#4"<<GGH9\6N:_F/9TRSYG4_J
-MKXERX[^;P_>?L^8N9O]R[Q=?M<>UM<S$VUC2+YB2#`L()8DF8AA1B0G?6S!,
-M0-C%]K8I(=]1LE,3ODDAD8L",6*$,1]##APW[WC?]:S_^X+F>P16(GW6>/64
-MD<4@%4RNZAIDD:-U5&Z,7"6`D@FL($TC.[B3<+1+6#64%8DUMZ7XWRN/ZAC_
-M$K<_P_4^SSGYO.SNO]-?`Y_0_2^S[[P:]YB_>:^=&Z%Y)7B\RO.DF9KB$DDP
-M23AMQ!9CR4=2T*).H(`S64AQ37SO/SEG`N=WSVOP_R?E_,A?SOZ?TK3\S.K5
-MN9S.IZONKO`6^FBU::S9W!QVM%2;2V&B66`78(Y,"I`J(Q",CG0B9`64BET6
-M0LJH[9NEE[6;=?=6X=KZ'T^]_M\D]SUU6K>A>YF;WOK=IWYS>)\;>P>,K^ZV
-M&_@;!A@-?AA0L,`%A3NS&%DWF@<0\]LUK12,)L)/^F<3O)([I[PPG*`!@XF<
-MS1Z>;9,S80K*?Y?)8UO+]U$RJ:+E(3(>8J-34IAI2DT,QYI/-#2"9)#H@,L0
-M/$5XLR3KG$#X\)L_#L`$,%E`BR9\'++.GLAN)6FS=Z7TZJH?SOW'X7S?Q=WY
-MSZ&A^9\W._7_CZ-;@YU;0S_O?D^)H>=P8/.;"8,`L`Q@#!:08`>"9BZ24A`U
-MTRLAY6"?)%Y/+!Y?T?J^Z/5W9]S_&][DY?]O=M7.'YGC^+^)E)20T:)#MCUO
-MD9*T<3I%Q<0XPH1N0<C!R<C!Q.,##SGGF`//),TL`WGPKSR&*820N1QQQ.(#
-MB((QW:/2!G-T!G%TC\HXC;743L3OLJF/;;((:_=[BI1N=-0"?H/1^E^P'I^O
-M\G[&/N/HO1[>C*3T2![:VHQ3VX38&;,]NT)D21('MQ1[>&4TDJY,FJ/<Y:FP
-MP0E,63:9*A.46>->7D7W>;F^B\BOE>`<[A7LU:R[O3-Z-%FD!O#F#3?N4DWL
-M0JZ`^J,SUO&)79@XJKDY*SC%!R<`Y.0/'9#C(=6"*,`XT4C).L"*?BF%=#25
-MMB<!C&Q#2MHVV%M;O1:9N;O3RN;OG?8:;V64V_(Z6%?&F$#&@RV[1:-8,L(T
-MJDCCG=45F41,6(P1ASJ'>+=S30<G1T,&$G0@/0,$I>?'OM3BO?&;,H21HTG?
-M$1G,@XF%HZ1I^-,Z!U/68=XP^[!V,:9I*W[I17!U1X9;3JN9'Y+:%\/\R_HO
-M6V(0SNAT.9G\_Q.=@PX7\3R/6.)L38C2383$R98G0"1B=#RG?+1DAB!WQ7?+
-MDC"&40R.9@1@<Y@2!@#$S63J<443DXC3N6BM=!#N<WUL(-/@Q+)%\]%H8:8V
-MZ5-D?'HT2ISDJRK=M$M_!:654]RE5)M6EA6=TI9YD$&?/(E]U6F)FN0G/5H:
-M"9W].+\)TY>H/@]3ZC[2E]54!ZE]50DC[_JS/PMFE1(48;;30PGE%%"=?@PM
-MU%@L!DIJQ3WL457XVUUGV:DI])L.PU&12:I2OU)R>OT8WI4YZ1=G=X?9LDO:
-MWJXXS#_;.O,:18>$*LMKB:##2S,:RLLZ$*3>R;?HYGM<S-Z.8W-%"G6YZ"$M
-MS)NLV[`(..DC=!MS,A@DO@LEE#)H2#JJ#YA\S'\>T:O[+;^!_$?@?.!@SLME
-ME:CC/#<\M9AQXQAYCX7:BS?J7/[1,R^P0"7P3.74$F&AU.\M<_P/=&PX\V%`
-MYY56;R<0JMXU;+X)%QH94;'PCA4ZRJ:V2P5]$RQ+`IL3E`LS<JQ$TL0KI`J\
-M<[-[?3_=Q]"6<Z6'/[^B7_E_/U?:.0/,K8E#P>9L7K'E,KM/E`XYY"\H\IOA
-MI^$'X:\D`9.14$2A\,I(_>990,0$H86IP.,>YZCSRJ@E!E"A1M%#GH,P^<]-
-M]^NQN\BMKF>GUEI]YOD86)25S9RJK%S]]QZ^\8/S(SZ;%)?18KRVTJ21A4V+
-MJ3/#.64OG;6!D9T3FW,<HXM2^XI6@9]XY:=BKJ_#/B?%?CX>AP\(L/3.FJNF
-MQT_&882=#.R$;SM@)JU/XF.+LAP&^<&?5C']/!]`Q]5F/S_G^%;U2"//6FI=
-M#TBXF\S%[9UTQCN>U*0A;_R9^71"DS$SD(<(DJ53_YF7O6*VNVWO64NMAL!X
-M[:+60#:TH#[7UD>;K'@-RZLKRVA95MR:E^+S+,X$KM=,&=<QT8U7HBA5%M6Z
-MP_):;:/9H7L\N%>SQXV3'#Q#-MIG7$GW'@F@NLF<8WD&<E\E.PF#/0Z'8.-)
-M>RX/!SK\IJ'WWP.8+S>P9G'0[LLWQ<]GA"YO)2,B@T5E";(XDXC@^W\"ZA4=
-M_*FR5:S3UC)*'N@U5%T6]*Y/H#%Z,:I+C`SKBVRJ3$P\)5R4Y`[-Y;&40[&2
-M`Y>18#,NMB6,=V)9:&IN;$BRP!I6&`^=GE\?C/5\1X8=92'B62>PB,1!).YX
-M*+,I4D80\]@@HA$D\#3*$9X/!/D8>'U_#ZGK^`G]MFI/PH]O1J*!E8>]MY7<
-M^;<H3:=:*<T^Y`_W,4J:Y3_%9\U8;P)/]V35/A[5I'C!45'!=>?2L5JM%M$`
-MUIEBVI5O;M'1<5M*DADH\GW+-6Q)65H:EL-+HE=FI?6`Y+OSQ[';Z_/S^][W
-MO>3+M^,^K[)PP\3Y)-;Y!&/DZA`5&**+!)/(J)^QK]8DM`\"##V5#V3OD\IY
-M?9]XXS9IBCHB/]AFKP>(]T-C#(>-V=_#^R6#U0QGO,XY7L:NK\>A2[;]5]LY
-MK'%L-3RJD,OVP]$N+0/SYS)F6C[+_<;F)F56U)--:PZ34&O-:^WN#>QI,TNH
-MW=68'!J:41\,+EQ=GR>3C\?C\6Z3PU7AW=@GL69&54HD\"(BD8$?G8?/B8*$
-MA;,^59#`8_//G:_WOH?0=G#Y_Y7SC]KF%:V!J#N#%!M6^I$,=U-[MJP_ZS)S
-M;=M'2=Z(^+3P$_<&ZNP/4&\5F^)F<5]TY9Y\;!*(4T*9*F^O1,OO01REU(M;
-MGD$-I4@P?"BC3T*HJ(QDE==T*6GF4_@+[&TL"H<R%O%K;..797P\G)R'(%;D
-M;CAQN9'=#!QB0S'&@XW'#(<!,"3OS*65Y_O^$PSD$OVZ?;W6%`)[=SS&1?3`
-M5_+\6.3#S^'%FMEVL_RO9=C=H-*>_Z9NG"=CD4S?1)Y0QWQ?$:2NUZA0+'[Q
-M2WE,5H[QJ-SV#H0KK1I(_!U>5\PC6JA;Z:NONJ@HCNL31S5E.VK//!>S43^^
-MR:G/V=^_ENZ.YXVV48/&K_>GP^B&AKU=?L[:#L]ANR;-9,=E*6^['Q`!3SWS
-M*/FJI!`*9OI0L(OF&#-@^<>[)W]R*"%.-(VF@DS6!X'OZ:_W%KHAB:OA969S
-M43C,9<4%@/VOPR9?>0.73<M1&#ZI]I5%2OGO$9?3Z@GR9@B%JH\)<_P-C]LW
-M>_BPZJ<*RU'6/5:.F6N`O^-2-5.QYYEKO0*M\U):WF"?[[.^=I&L+ZP)EMG?
-MLWAK<7Q7#4M1#$_C^$CLMGO,T%^!SOL]Z3I_4WL._N^-9D-?>U]K`W[?ZQT]
-MDN7/(/Y/N3TDN%JU@(>@_F'H+5@?-^L?5UAB'WTS40A]68AOWN9!3(E2-T1`
-M1!"I!HN\!%(-D&,\/$&(C^O$&MD/M\4'X3XG_16SOGH`=);1T?75?BY]_:6&
-M+FT%^Z7W?9-_TK0D!];^AB(/R$=CHKZG26/T]%JW+P:6,Y;4V!Z<N;KF6NL)
-M_R^[G+FW8MOW]&[F'!TB-D9-C<3+5^QAX?Y7AZFVV7/2%2'1/3JJ+C(Y2;3S
-MV%F$@>9H".;EJ:?'Z((@VO%,U>X;6FAG:!56R'M;Z-1.7$=[KMNMM?QEYO]G
-M.23COHYBZ8K$`\0'9#&B?I%>6P.^/OR^;@&6D7/T631$10L+]]'U/O=:#IC!
-M?D=&!F&5[MEY(Q-@_4_A,^'9L#'\/9GT#][F4@2E(Q^+B#_N+0>),Y^3&RNR
-MTEOQ!36APMM+HG37+@P</A\:#^+U2\;+^N[$2>^']\4WP-Q\M3*\%<:K60_'
-MX&92+LOS&'>.-V;AT>LW.$9O,.=#??D*RGB_/JMQLG+2YH[&<UNZ<)JY/*N3
-M-=8$;<X'"EA$_!/I[.*O`WVN$[+[B9]_(RO=.^HA]E$0`A].?<=.L\!AV6G2
-MZ=J@'J)?D4!KTE5'Q"293/TJ]IN0V'?YLY!L_UEF>A,/>+7Y1,[M9\0-6^1R
-M=\<18SVQ_.37F&$E#9OEL-/`!-=-9Y@^,BLSX6C4\8*6:F5]6+LNCM*+4O5+
-M-!1;X2L+,S([83MX-/ORULE>KRMN+@'R;*MM*JM2LK,B%H1B,=K-(D".BJJ"
-MA`2D2E"*D%D9"(A&)`60(L)!@?+3\:C_%6+*[-!@2?&)#(^/!$9!A^0_^-_+
-M)^0EM+4\/&_6S!O;;[7!WNN<N:SAX)\0'7%$T&Z726FN3497BKFW,$/]"HR8
-M\]T%UKQC8+6UU?#HH1^+@[+N7VL4NN8NT_<F`PY`=<](J5AYV1?VUYVZ[I4<
-M6P9H<"QN_]XE#BULAZ:G9HOJ#.*'?,)["K2=BHX\Q9L^P9U3$MI]^_YQ5]WN
-MS(S,:U*RKZX%V4$??D>!>*/;%10]_#V'\1AW2D5J,2S/.;^=,.1A"W2E/8#J
-MU<+M<9^A7F3E:$+HXG7J9#2=3J0LK^'$6[*5[%\W_37+S4\TGP7=4;)Q2G!4
-M[H:@D;6!MZYW)/:/N.CKS'X^3<0OU/H=FT.E(=!X[36&2D71[KW@7KJ!/U,/
-MH%%!+43UF'D/=5]8QF:7PH%;RM<'V#K5RA:>6RZ&MBF"J/QNAT-7CIJN.@+8
-MP=DP8+AH8QF@,[57.7F?R/@6)BSPX?I/TVCX:0^]:H_.0/Y=4444"?EIA9?#
-M!0$>(R(;J?<B"(%6-M&08;9D6ETNE;K&UX5$S;KHX,7C'#:51DWR\8!SNSS#
-M7OCA1UB3VY'9693/'W%;NTRC;U)3&JDFLUF\>H[?SS5'0VKOH-CZ$=;4H^*?
-M"[MQL#Y9)--Y>*2_R6J21P'OI\#!W_<P)AJ@I>AUJ;7-<5<'<T9"%M1U%>2A
-M'99R]BXQ^PX;JA;M@*[+<J&DX[`_&6306ADHOXR:<POG9PCYK8,H5C:6BB6H
-MJA_TV8_1'BO.?R/:I&?OI_^\(1-HE7(X_;PL=-TE`\>''S>!!B('</9Z#/"F
-MIJ!DAX82[;.)Z*G^>((BA"E*-OZ4`/"X>AI(>M@8]3^9B(3[-?IA(ILD?>::
-MBTU0QTOE3ACA<<OL#I4T$(JR]3)"L'_53-IK6B<8L9^JHJZN;`]QD;CS"3KC
-M2!GA02)5F#Y9P*C_6.&4#!FBGC>3-X]WG,T5@84>:!41KR]1H:A"[/B65Y])
-MYA?BS'ZZ!*JD_6R!@CRB#]=GZ_64C/QHJE_SIUX,\%&K']I^PPT'V1)?"QHS
-M#6\-%HC11X$-"RLRD7S?.M(?;XF)Q?`@J0L[?4H)>P4FM]7.)WW$*03=!N;&
-MH.\SF62KS\5R.\L&6GG1U2KT2?6A-E<UH1L_O'/5#5Y(&](IQ.-HKGOB2/E_
-MW+3OGFY["]X\BE*&"`WOG.0O@2<S:V.1BY>FIS>HXVO@KWIM+?5&1G;MA.3_
-MKK%.P8PT^S^^"U[O&\.`D@WRQS]Y.Y_3UPXZY"JV1HU+Z;XL/K%_K81C&^KM
-M\(-\_\W[Y[A->IF?X*G[C>^P;B(`D\?#86,8L_49PPR4+W<.:RTM!Y"0W;^Z
-MKJH?`TSS%NUNX[G$G8@9]G%^K5&4?Y*&PJZ>EQ-9.:JIZ).3QYJ1\^6+2BI6
-MR8A1O)[5D`J)QBK":D8BB&;;H497&3G-9!2MVQFLA<:ZRD9Z/#[9/F.NUAI=
-M89JD73,B4>S6E>H%***JG9%]R,!&9-J,=6Y'-`N4G,9P;GNT,5EE!H9$\6=!
-M@8OHY^,+^4U1NE#\H*D)$_*JJ_)S*OU__5FF)R[;$3;2&CVW.UE97,#'JXX0
-M:D!6!PV9,;SR]F,&1WFK[,5,Q!C*.JEX1\BQ-W%K2XV5%2^+"]UE\5?Q@.1R
-M7AMH?+G?LX#[#Z'RTG\Y0?6>!L?/1S:AJVAK[W^Q_W8&8:AU#:1JD;&=U6=C
-M]^8.L[WM?U=@^VZVWMVF9?[([7+#0RR&(-.A'PY/B1LUK?C'+O]+\MS;UC$\
-MC"P9J'55NY$"%/R:-]XIA6)N+#[E\H9VKW/6S,YXQ_YC<MYN^G9==R6!]K.E
-M;\BI3LQ.EZPW4-\G86?."AD)J?O;)AF;>29"^>*,X:5N1)R?H.=D99V8:*BQ
-M&1X$BSEJSC08#0^O&/7UFO<PU;O`O-WZECF4(WFY@[U75CT%]V4SD@QC@6:A
-MV0U+FKO(97363CJ:O-)^OE&(/;EIVC;LW8/W87X8EU>N42L(?^ESRY6[E)<;
-MQ`\22F?CL?53^ZCZ@4VF8EL-DG.+=:F[8A1FIMB?=9J:CJ948&DL5H:."K'9
-MA?"TKWG8@*98\D%\HV?6ZT@%=RLFC/,<5;F9+7.G:CU"KM6>7+(+6.+J--FN
-M@:'6[%W`7TT'LV>XUX!XXM9>2Z8I\^"&R5MG;H#^S*"E/Y_\S]9\0V3$`?&C
-M]A\M-F@P1TWGD<$]:/RZB*G_LP,@_-_8I^QUAL_5;#7[+#_/VPPX1NCM;^O.
-M./FQFA`\C#(/L[G<'I1^WV>P.U?--D5VQYJ!.G_:CNPOP9QHQ?Z!O[+S<%@W
-MSR_\K>C>BD21,8<73+]&G9[W>>H+OXPP6'5H,!XQ.TEVW68%@LB9N.`*G'/7
-M',''2,O[HH]LOF3>YUE+>,4SG$!C!M@`J3*TP>F,WZU@5HT2UX#`7+OD%%1S
-MGM&G3OJP4F[?#(M<JQ]FQP1<*-YJ\B^MT:T35^'.XTS`-,<^V8:\,P'OV4V)
-MB*+J8V^-^IK0^/@ECU2L^$(D"7ZSN]KA"L<JH(\2FJLC7_)HL>N]=GU#"V37
-M>@Y^KD/)A\V6ZC/;7N3@5FZY+/UQ]9M$<F@$2O0S1P=2S5V3,LIWIWFNV7(Q
-MD@[VO#YBO@3&S1.SB+R9%Z%BK.:1^AH1SQ?833D-QC0ODJH([\ZQ[+$\;,/,
-M>D1>Z!/`HACQH),ZXT.GQE?`<GG-?HSWZ<?]M"*A)BZ8V3G!N/M5>%M&)6*Q
-MGB[K)O(/[7^B/1+>'\ORT(FI(X15F$)FJ&7ETPM:O`3(F[C7',=(OA4TU7O5
-M3A9E46C7^0UM%K\P+^V>[!MG*II`;MC^28+)M&_[LU[G+C);'%*-/N-?48%\
-MZ@+$,[T^PNE]K"^G#]27F;OHO1,>,#X6=XV5GS7^U.4M)HQ1A1E8N_M-F'?:
-M'#`FF.DO`4:@"&U-96>9`BO^NAJ,^UV;"0Z]_#;K;N4@+SXQ!H"CB4&."_K(
-MP4_;0.?W@8T_J8<5*#P2?<RXA!EJ:4"NM*W>N>N\A:UW$B/%HGX']HQZ^:<Y
-M5&`V_=V#ZHBN3'G5FRG]_`F%4O<`"Z54-"O;\W<\`A^"7"L^SGWJ#W-)4M/2
-MQ/9<?FMY6Q]!XHM$7S\`_=KU?*2?R-P)02;AT-<JXK$I--X"OL,1;1E!5]$R
-M(>8@!I'^<YGF9KKQ^XAKYJAP8$D5B/SWAZH%*?1=EGK^%<[=O_S@^G=*N07<
-MR]N3O:<OS,^B?T^-`\#AVCGBQ?3'(>8_"U:$A^NK?^FH3;_B$@',-)T7HUOJ
-MR'OHLBT-N<DM!B8K#=7<:QP<$ZZ<6MUE%]M+Z&1#O=MSH(7Y@[P!>OL?QBZ*
-M2\K*O]D?*2NH<?5\$]/S]$8NOIHVIX=>\EG+J_VO\,8N>SJMIQ<S0+M7D<%8
-M]S?^N?1PUZI<?IH&4X+G,?K\EIEW^@@E^!<:'B''G$^<C#I/H#RQ<F-=6^-\
-M"-PL-C+JH;@QF(^^]5:\C7F-`-_E`@M;+YU'@%YX,G]M[X2F[7X!-%?2'B"B
-M#=6;&6-B4D>7Z<!WNWV;Z^-"'>Q$L<*#W,E<<,:_]N?CCY`4SU@;]AZN!@#8
-MST"]\>`6B[#B1_&GND-DZEK[G?FIUOHH_,Y,P1#8>@4RKE7^RD*VPF^"(D^7
-MS2C(K#ZN7:X'D-!I@=ZVG/"X`<U(#@KQ^XJ6O^S?$AIHZ1C_!A:\;3<&MIL7
-M>6:K$^!M*,Z<2-9TJW#@'SA)Y\E;:U1HF`H^?J!4]X'N5?YPS@2Z:\&47!)R
-M;`O'Q@BOUO"VV@%U]3LW$3PRK5K^\$!2$FO]U6QO#7#+X^\\<TQA8Z.:-':(
-MU1$O,VUA#7L8#6<X-:NG2J0EW?M2\;!Y+O"0&]R>:DN*R=\^0SF^K]!&)CR*
-MJ9:0"%H8S"ES>QI*V.L'8K%<$@!(K^<G:RPKG_B:SH;2Y[*X&;X?\M=_'4UA
-MN7T%\F8@SU-[!%3[](R)RF>5?,CO_/@KJT1I7T/C/9]!5N98:,>O@&8L,K$%
-MT;,6P14,DMM-#&!/YZ$^2SB?):D2?C$J'SS%A/YWLT?U7^'>H'VQA?H7R*.I
-M5DD'O6?PB-NU@<YG8Q[3"O+4-ZO4>E&",KSPR)J,8>ZFO-D^*V]0@IA!R#L:
-M=/2Q)OU,.<=Q)[3ES\%G\I00Y<'`O14"#2IKA1IPWLK^:2_O>KJ6,ZQPZN;A
-M>\8L[8X[M]@>WDR5X-;MG74<T7L.\\RH%'F;NKT7DT:U<A</[N%_GEDG'F5F
-M\&,K_O`G[7D>S_3FY\94&,;)R5S2Y%%1^[M;@6ERKAVJ3-=S8$MJDF!!N79%
-MY;)^J\4OQ^_TU:TFFG/?6/UOU&-QE^-^0]K73^@ACQ&<FUQ<UJ3/=U]7#>4S
-M;U5T\<A7:?$:`])U5]].:+2N.@8ZRV0>D`Y(\(I4^??LG"[<R`KZJUNFLRBO
-M-HMX;Q!@_8GK[!5?4X@L_[#P,=M"^'947<=\.^*AA>V(?O!:,]?=&@]^MI!-
-M<5;CW_8;$X"`@!J#?W5P\N<'&N\PA?-FK+S6WWQ/0FOUL_%]RWOF9KC?39=C
-M\4[VEL)C#P.9DEP,'?'UNI>.@6S=],^GF954%[U-%P]YE,KRS`Z;6F$DP+'[
-M]:]'DT?%&JG2:9#99+;O_JOMM9TN9WI\"G432$RQ^',Q+3LF`YR_]]J5#*M*
-MCYIOXMDEZRX=.+ENC30F-'OI%BZV6G3(S`$F8BAH>AU6XLDD;;SA%V<&XYXJ
-MG[CX\V,FM<OB],=<QXFF=U)B*Y`>5N@#'J_W?2&D,.5/1&$W47ENY8^\#DU*
-MW^7!6WE=H9KI;VRU>&TT,O0'"[>SQ*C[;T?H9+A9'L5@<ED]5L>(]857IY"E
-ME!+ZZ[L6P<+G%,F'R:]@=X=7I-Q*&1T^W(F';ZNA)A@+FY&A"Z8G:J6)MZER
-M>6667-Y[#9#7=,[BE`:],6]^APSV;K17V8XQNT*!1$;0M2:-V1?J'Y5"Z;*1
-MW)Z*G)G%85!"-,/VYG`*22+'*W_Z9B-56GBC,*BU?EJG,5/17G,K%D.$I4NL
-M'B]:5_BNA%-1SK&I>E_#KI!G(("'^^WZF2V=X!U%4Y/6%N37P%'AI*RA+CU1
-MSI7%F^O/G'233ENB&KG=[@TVDF$_Z=AE8YXHJSY&*?BE\@=TM"5`M_QQ*S97
-M)>O+:FMPE[SR52T'!:";XB\^1L?5W^2MWG\#E3VL#?O*YLQN=*'W.)V"[FPB
-M"";-H\>8()>Y)$)4\!S,67%8P[WM5;]]?,5M>LGKBF,&9PR&%^A#!%%+3/<*
-M+X0XX>.UL3=\6`HL7P06+OOIQ+K0'IX4W50$>0PV1-4#]6']SJP@G[V#/CM2
-M_JF/S?Q<#;L3N4#A98H\*TQ0_WN^>::P?R>Z)Y.ZXF$F[@":SV/;2B#M0\1G
-M^S.$[LW1Z:`"AU#\?V_Y0@8[!/J4SF'YJ7M^KSVJM;_]T,,;`X?&M*6A(*.Z
-M8_>S&2SWAL^:N[X\)#`J&8?8-(]G@R22Q&=Z-AF"-T<7$=MUENMN;<?<\*(G
-MKAO/+`T&H$)PX2LI7UU=NK^M6>%QX[3#Q!1X.;X?\CI_.SUND2BB2MH&VO<K
-MF.PXRYA7RV6KVW4&/S5Q`TM-B$R5_B*<SXI?X"\RKFH/X@;5(NM9'G47C0DN
-MV8PL_W%,Y5!ZW)Y/,C]==F@'-Z,&0-U)4O9X=\`P>M;Q!4<G.0!DO-,`:UER
-MNOVBEYR9LPL9@PVRZ=(\ZEX[8-#^)WU]7UY7[#KS7O]98;)MJ+OYO[ICH'B'
-M\>MA$D&<X%I<YU&_/>>E%S;?+"<+A4_H&H.6Y@L_6VO]T&AH?HE:3M$_QV.I
-M7CD&A&FY09.`6:_CI!I&W9G@MC<_X@_HO\AKSYF\W85]A'&'\36-&<YL,>)U
-MN\.;4'`<"%X<XHU0!O+6XV1[@^TQVX9^,#10&4089;/V@>OX\C27J^^/-*^&
-M1C9ZP>S(S57HHXR.W7Y%X4M;F2B/Z^ONZ.%)SOH_#]2UBT8$Q4P1AML^*(`P
-M3?1#"T^C<?7/G2$E;<7"?L/;J>&/'OSK3_9Y1VRM>9XS>S_W]D-9C,^R]TPJ
-MJ_U]_:<E+B&$H[\[\]N<+M@YW^EG5'9G0CC*:KQ9X2/D"<A(2'(_1BM3AU6_
-MP@<2"*1]NH;L''H0+7$IOZ#EJK.P1^\-_\:O^""(!O@/QH!,XY0#[-3N!3F2
-M5-2HCQ&$O+?\/0HKS@FYI9G-"@>'P\0@_77#*89PU,(.M^75TGODAXWKTL6(
-M43O0)-!Q.UJ/8P6($A8#P&KUA,"XQ4Z(R8,EYJ^;'P2;#W?,_#V=O(@:OR;8
-MT(8?OA&>J%#)F1IG>Y&&ZF=-TKVG,6]I+X>R?!?I$?F:&&!XP(*%IMMUSSE>
-M6:08]B85"[?]'_KU)-<JM].WAP_&[%%8%#;WS<8!3,7)6.]4F\\R!ELH<+C]
-M%OU-7HNX,X=E5GQAS!F*4^B'R$'UY)F62M"7<H<=^\P57S3(FN!`@=SQ7^@-
-MCQ+NW?JWH%Z\-2SIO1E=UVG-%H-;2C$,&Z60!*DU04@Y_D')*+K/6C-CB[]'
-M*A1J5ZR]AC/X>>WH'(,"!I[[O.X++S$$Z(CA4.!Z!<Y_+6HU+MA%IV8S,8*#
-M>=?;TP'7?3*N%)_O!V-O2RY9OTYD]H(&8+B4.'[>/;$/(WR9XMG8"<,2B77@
-MNIH6E_BZ)7<#LR!6=&<@3?`Q-#H,?J2#E&.IKU=I6QY0600$A(=#!G+P=M.S
-M*.77NX!J="T;<:)U._N6(OY@#APKYP."LPX`'?,F<R%H5AUYQ6*/VYW%L_+C
-MKO8^!D+T&N.:9:R7\6M&BS2NFB#@+AS\%9I/43NA,QWD#9=W'F,?7EWKV7=4
-MW905#`".A@*4W<47EOZ41FD+V>`D,Y[#`+W)B5`7779$!"8F=YFP]@5ZL\L"
-M6(S/CAF"$Y=[;W_*Y'F^M!*?T>#L>F8COJ'O]G&0CQ^(T%FYF`^7Z8![7%TT
-M%F?9`\7G8FM1<<7\/L!PJ6Y=_!=#2WR`5+#WB.TBI:7NC;,B]^L_)L40_-_;
-M?\.A?!`%(00K7[*``7(II^+9$2`4A$BE115143,55%1(@%04P`T(20[K]`R!
-ML*"?ZD_K-G7_9HGUNP?!BQ40156;<HVV;GW.AJXXM#U2G)26;&-IZB"KC9SN
-M/Y485HN7:V3H7]25"?+"_ZOA)`8=EF.*>A?)],0$@,6Y]!P)_9*LU-SVO,_^
-M(./;XT4O]EGOL_.;@DN4W2G\KL$<X=]2.*+6\$#2>=9A0X`E-LEVGHNYD`'W
-M&/U;K3J21`0'%AU-C%?^\Y[=(YG2&2.`]4U\L;`D\IKY!S%;Q[@T,XY&*9"E
-MN)*XGE5]]^2DAW_!P'%F#>9(,CD>,5NFJNQ7=![`4%KOW,/B?4AJM=Q-OB<K
-M0JQ@-^,=[)SK=W=`H[2:;:^C*LI_8]HB^B"+)'\,?5'Q+.8MH\(>AZ,-*@!:
-MK/QWF-@ZG'XXZX@VJ:1$038,#*I<](GB*(R&3<JL9S:C_#P$"(J2AIW&,@*F
-MQFLG\9T;,\$G%:OT[[^UGX)-<%Q]CE9\_!$T*&'(Y\5E_Q=B#8)8AEIQ7'V4
-MVWD]V%E=G[T@B$/[-=L7,>`@(RVDRD=6.4>"9AW$JA3P)W6R?X(2+O<N!>=A
-M@3`N0PJIXEW+$IWLL*B(.)!<?*P">2_\>+;<"M9/-K+";R6&"QO5_"<#[`N-
-M6CO$)`/:[\A"]R@Y3U1Y\M,C,@:M\D<SC]GSC9$_H>55@1$"R1'C:?,^=M@I
-M@-TS`N%,RGR-E:=UU<BH<YAY[.?0Z0KN.MN8WZYQIW+_SB'B+.6LEZ&2''&N
-MFVX-EGFILQ<K/O\O*GP-WV9,?]2U!XD%#L\<S?^/`E^2B^!`0W=^(`I$M-^S
-M43(Y\S\/=HKU2!74%B:H:K_+O["<U[-0!_$Z(U'V[BX;`V`IOA=8`+&?BJA<
-MYG\0V!$73KNIGY5?O/#EWVWW_T?^>>*HE]AYM47(;-^>*CWOJJ2;XSFQ9\"4
-M((-2.U];6QH%(DR:I,`:;1#S]5?3#876*V=OK*,W8,@46MC<;5N'W(1QE/X@
-MXF)KS13VED"LJV1.&QO.6][>K'!X.;-%FH73.AHJZ-SLL*/Z\"KU1P"]7+Q:
-MFS8&'F/^UIE(HM;;&(W^$.SER>O^WU=KD7J/$(2MLL*M+^"O,BGWO.H"]5OL
-M5$V);;U8'([XHC07/E5[?*\O198X0RQ0[;KCV.Q6G/`EILZU[067?=S($/AS
-M)@@#MT9!?3'LU)"UE_]#(W\-5F@1U0H\B+Z^,EV//:=I+SIHA'LSB,N9@>R_
-M.'&/`MQ+(%*R>>FSZ)2!>QLTET0C(BE:U7AH_<B!!!OFVIX:I^(%E<X:%V!*
-M)=MH>M9WYXA&&YCP?$V3O@J?#B"]TM,Z'F'"#WVJ>\H3!4FP^$T,Z8W/H@XL
-MR&*U42.<B_/%/39^V6FZYVH#C0SOIH-$A`QSRH`VO3X9X;CP1QP[!9"W.U.J
-MAMU@X_#0`4O*$%RC.[GCQ?G?Z^Z-A\\5IXOH6`D*D'CF6O*S_3T:*?\\Q[N*
-M9'&I"G\$5QX#G(^Q"4;">(G[5)@[5+CM#Y8?OY+E:1G@TE#\2&>8^47]9#-G
-M@,/[KE1+D/6]6[1>'"Y-3W0-'GFC\XR8Y%.?(0GK!K7^8T1#A9F*(2O+F/=2
-MNAWHF`'Z&YLJFQ)!?_?SXR5CSH%,I3X#:FZS9&R^34`P>T:!NLL<=`NE^,L!
-M)4G[-FR&'O^#9-?7!NGUM4;+0.TX!=AXV!S$.!V:IK$G/P9+RIKRX$4=4>O.
-M!GC:KP?.`]*(%;9&!S*\0WZ=M#1J=K1''-FX/)PAV_^Z-&N&B8X/REJL['>L
-MV!`=O!V0&5F=*P'P'^YYA>%E.'[U>M`QN^OSP/Z,"5A<3^/'WD)6J81UNW+Y
-ML%O?S\W^G#RP3RU=G`&/2`L27L=<]<`Z6G<V0B]W5/)79MX[XGR'8LQZWO:Q
-MYLNT2'6.55)G"E.P(?7S>+AN@.!L.]XC9&J6"5"GS&HKRZ/Z.+2)R.D2FO%E
-M[_4V!L3>[B@4HWOQHK)>CRS\354Z/@*IX#;KGAY@6<9RS0<_N2=%%8Q/=IUW
-MN'2'8_%0!4;"YD.@<`ZRYP`.M.XBX;=YD@R1^.V!MP=]%S/FNZTR75+SRIG2
-MTQ"HJ7.U&F;3I4?:4(R)2O\`I,''>P%ONF5O=E[,IJI\V5#1RQ%[-DQ=5CSL
-M^I%^63(O1ZN[Z4>3OU(3\L1/SMOO0?D,T!2^;$^Z.0#4C3P9TAZQ#&&1Y\-6
-M@3D&JZ4VJ9X5]GF\"=!>[[>>RFS@W'`F@`S?4(O,,W/+E0?`>-%>#%,AGO\L
-M@<Z)E(]-,17%_F<6-12\$\7TI"'V6NB_&Q[(I4(O&P>"AUJU>GBVE[0@"WDD
-MI[K)\Z2-\G88%LUR@AS8M:@IC6'31(SW)*XGKHT%Y%$D!L5'UZR4LSI2ZK?T
-M:(E<QGNC\8$`=8*<NRK5T=).[0+K?](4IM*Y+$_D4NJ<"!W;@=&%OZX%"XE[
-MM)#9)3?N$`(\E\.:X!"5R,$A0G"W^[XY$J_&4HVC&'2#G>1CQR`(ZUT1KX`4
-M%WG30=OSMB&:S<33<\`=*DQKV;+H0440NM<99Y4OA8.>:FZ$'0/3C9<BK_M*
-MYQ4`U]=W31?JX<_I`"1D#(J4QP`T"YF=B;C=X`*OKHNO:1Z'>D7AJ<<^;8N'
-MX%KS;XA'QQPVS/[<&%`":VX.0H^..E2!$4SM;]QHK`I:YM<SZ!>J-=OB'>.Y
-MMR-TW*(O+Y,6H1D8=WQ#40F-WS\<'.]TR`L[=X;EZ*!.'9X$'0:!"7^?B16.
-MXQ.,".%]>$7X8QX/`@M&(">,`W)XTA%8*GF&AL!/'<Z\D;OJU<^75J`SN3L:
-M&:I@2SKLQDZ;];FF*>:@X&G)^X?X%4<=W:=?!"TNG?&TR#(PH`9<EGHAF"`8
-MX%9M6I11""U)C-0Y/7$,U52N$0[-OX37#57R_<6L@'N>X>!X\3OYH^QDQ^4;
-ME9,Z=R=R`ZT@XY0WAPX`X$IIL(^+_'D4TRXT\.\V5N"`'?\,ZROLG!EZ,1_@
-M#]GL+8$\S3SE-%^-!:D7NMO-8<(#A:#PXKL#\BR?8)L`*JTGSTR>\,FI.GQ1
-M^8>$OG%D34U8K_M5/`$OFS0_3Y?)7L+^RLJ!KT5T0$\SQ[_HD'#I/&!5]];I
-MC]KZ]:;,)0`"L3%VZ.XB$@1A::%Q:$&2:0EG6))&0K<GH+#P\E]\A(^KYK!M
-M9PY.JM9H(*S^1L@$A/K]3=#XWAD@#ICD=[D[K\=&/]?:0D07=_*8F-`V,Z9(
-M7XC=E\2JGX^9D!.V.`:YLW+$K2YKG1)9O5?A$D?DVI.G^VX<N1(2"R>[>:/I
-M1Q!UJ%^ZT9[A7J.@-NQ(ZUB=^@04'C931XJU$<$>A6^UL[[_GRI*`KO]_Y0_
-M4XR7I,[*7E]KJK_*%D0VVFV-L;8VBA;>D>AWVCO/EZ:S1<9R@E8?]_1[K.Q6
-M!6`;3?(LN#B;/]<SAQ):>.ET_D@F/^N,\CD[CDY^2A2YM-![A._OKRDS)+S-
-M'I^FGGP0A%G>_'[=5)/73K][:X,'0"5-U8[EZJG/:I.\_/MN'SAZ9AS>00D1
-M(DR*[G9VT+@?*`^,!4Y.`S5>`7->J5<W!QPUKTJ?O9'@0/[PP,R&;B^RXSGZ
-M5$:($-DJ<'7;6[U%7@K"W31?:?LNA(A/[J5M]-@3=J_L!A85]\R\3Y/^6$HI
-MD0"U6YVYY_DVC?,,LFU<'>=J5<M6<.*P(-/79H'R:3,<OE6'Y_.A0$1.G*6J
-M^)<M_(;$?,^0"D_FT%2_+-TG5,IPDY\`;!&[>5(>ZG8]N8-:2@\#KZ&>'K-]
-MM<BI@#M8V,D(_*OKKUIU:4@"CV&3-0FO*[XF+%=*;:XNUO'NDK#Y`="`%9(:
-MNK.-@!&G<Z_2X&Q^G12&EH>[W2QEP>!!-3,XF\?FWDIV\#<;F*6'0QO>0=("
-M0ZSIW'^)X?!0?PQ\C@(*EET/SX-GS_?TD&*8E#XZSHH2(+:XTSTMP_MTT.JR
-M.K;6Z"HY1``5#L7/PZ3'8]8?/8_,=/3'@"5]A+.*1C<P_,7D(@@G<A\;7INE
-M\WUP`9H9$.@R]#_)47`"PG%Q]?;#S;M]]V,U20``Z,6U^Y^I,#>V?V;NIW&]
-M*[2``8MS0:)O)__$>-^F-`MX%G]=ZC(%V:#/ED1QV/GPJPYT$<(!4!!N8QSF
-MPI<*M:)_A_WIG@0TFU^W$?RVU)MF%LFTRP:K):V:0`4SW83`H-:3<C>[&<^R
-MN>!"'O_#OO-OA.063TC[^V3F]#QDUHB`$WT?.TO4T-$T)D%OO/)\L^`2_YHA
-MVF0)''_)?TT?S%B"G7*)2"(..*V7^01SSEKZF;Z2\(A7??Y^*@97!K6<R]N!
-MX@%[N>):OL\4=E6)R:I0Z"CWG/M:UEI#\@D'(W^U^E@Z[AM]['T_4`&ZL^U9
-MN^HSR+W7#B[Q^!G.;?]NYX@'&Y7NUT]/%HP2Y,:H)VBL$YM/D0V26U_CM"SY
-M[CQ1-J,!M.]O50`KE\>_,XUPO]+$Y'S)!@ZE$1#!^GQNOY`0Z0U!$;B]-7*0
-M`ZN9?%/RA(?W&?Y*1CAF)Y_0D"2(R_@U,AMFO+*LUE_G.9VRHD1`6+[@!*G8
-M-6LTG*'@!IVC`"`/NXH[?SG0`P8W<$WY;=S&4B>JH^NIQ:(@$=A3RFZSU3TR
-MCI:N2XEODORF<="1#0)\1UBZ>&/W/)#[FYJO:4(`$&XZ3MV0':I[3>[R29DV
-M3'M0D"W*.)P5,N'T9/?\#=)(@OL@(OUL]KS)HJSFFX/P0#\VGP`I^S>!S=Z#
-M7?B\SG^`)H=<ST%_AWDC)6I%T-H-3K5CA:Z#42&^VDW]Y]*(BU/RGJ"L(6XA
-M7G2/%OICP"EX>X5!M.;O-MDIPZ>!#&T&'<5N<!<`?OM0UCO-1Q5JH0D-!R^V
-M)J529:(;YR(/D7VTK??A(K56(N>(=(*_D?TB%@B&15G'?4FQW]2IH`!GN3>E
-M=:J8DP3OOYW,MNW>+X^`K(/M*DLRJ#>[MHGQ$T:XA!!=4O2V$4!%><'SFR@0
-MXJP\.]1D07GJ<RI7RJWY35YD\A(EV7$)#]&`+76"?EXI`0^/$Z=79;X%GN_$
-MNN&J\((\G\T)`:.#BTKG.H"5D*I($_(&OCRCY%-3SW6%E660;^LX#O*I\@._
-M/Y<"LB^=UCE-Z8>5P$(`PN:;=/(74ROQ-P?W,)->)U`0'T[F$!'<Q5P:*-GV
-M_MH"`W_SFM\!\?WK;Y^V\S0NS;XX7BI(!<S``J]QPQ9?ND.@2F3(I)ZPEV8A
-M'MXDK25\-KX:M&1"DW0+&OD?<>J2TH<6[G(2+S7F'ZNN7]C=[P\A221X"AWT
-MY_U:0[1,-127"0=`"\UOL/##L^DOE[56D-EP82X\LP0&%UOSS_%U\@1JJN:B
-M-G20`"TOC4BK\6N:%A/;ZGVQ;L,K]^JE)GP^YKO8S:>]2`%4SLQ,+)>[Q[K)
-M\[M)PI`#:^M,S-W``BW+0QW6SC]E]NI@N!P03AD,U'5]I4;&#EK>S_*RE$0=
-M75L*\X:O!2+L8.&WX\`.;4D)_SR2^A4,$\11U&!*4W%=Z8,?IUQKY("`QE0]
-M+IF!"2Y;/09[,?&J/D7&NB+RUN'#]XS@92:5DV#1@#AP(+S>H3J:@1_*QM%,
-M%EWCS@(ZT)W/8OFT]"(`/_TB5;[P!\/--HQ7O/)HDMN0@M!`@8/I;A1)Q\'0
-M7'A?."->7=[3'X*WA6R`#1>D%GCZ</@J4-^>+(M10U]R]7!-'(Y/Q0$3E5?W
-MM]H`9L-]33<1;SFQG=]Z>,D`#+=7CD5`.FNJ'(UQT"9<78`6GW0J"^G??IC(
-M">4J=3.KJ4"$1A1`*!SSS'O>ZHG/R^+;6/Z^_H1@B8.)Z"#!#7*=J@]9@SWC
-MY%9(\R"US[ZPVZ;63M)&NA!RA5B2A$8`'XYU002QX>;>>W)L!X$N>:>`_NBL
-M.4B1<X\06H_')P(/\0Z/XG.JO\Q:0#12X/[9/[[`^G07GP?.SD!5++3A\6&?
-MNEP(!+S9M<R240'\Q^C"(%()6XV3:K+;`Z12$BS>BO.^!ZVW?W78TJ(\1*7(
-MF>D012>Y;[XX+_JN6U!"P$XM[QI:F>/26/3+H^I]$DD78`%+DS@M>7":?Z/E
-M0-;L60)=::9DLB)>QE\`L6#?33Z&=VNPW[=5)!$&:1Z!)76;M<-S-G2&S5/F
-M14_\U?=_[8QB@?`@\S4$6%]GUL_<8)&65,01J(BSG.O""G_.]_LG;;')GP4%
-M:J_E`N<Z@'W=Z[BZZ.0$"_G/!>^#F*++HMMP>:Y;QRBQ[THB"7^M7/`#TW[E
-MAM3?&42,-3EY$@`?2.E%7P$)U-#.:#-<ZNT(O1D_K%<?7K)X#T5Q`)=^&U9C
-M^?*-;=2(2'M3CP)CZ>!R7F(1Z)(GM%.+DNE$`U0DHMLBP5.<Z8E_&<(8=\R9
-M#`7J:EOFW+1$%SE,$$V44."!RMLD"&UR1;I8F<=C,\Z:PI_^$A%;=5JG2#=V
-M\W)9<,)+/T/D`VO5N0S$IMF.?1..(P*D`B(O(QY_N$(7>TUT;J'.II@!D(2A
-M94I0T'JM<%"1/.[R9#^)\NZ5JD=*1PX_C$43SA:VF20O[Y!(""^922+\:=HV
-M3J<+QUUQZ02+6XJ9R9S(R@)E@9,]NG7)W=]QXJ&2`!FH<`?50]2P.0C?JND?
-MU=&188`<W9((>PI,4DV_'>48+^[*!(!^_YB51V!T6[,-EEM7A(06,^0%+A(]
-MJY[8Q1;JF2>\%ZX200V'8E`5O%6*6T,&KGCX&$]Z>.4_."$M2=OZ8B7>ME.@
-M*1(M%BNT>&B4V5E&4RCGOD@`51$HC-+45]:EED,?4(05K5Q:.>!<#,;)22%%
-M^]I\$O^2EJ`!EWV47;\5-X*+)H`51)R&7\H'OKOHB"-D2/[1$7N;%:_(1+NQ
-M/L9O*FHY"F"^='1D01[^DC<1F?L?1*8%O@W&](MWWW2D/4VBBLY`$,A[D9`N
-MR`/QMQOA6A/R?.I!P_F_(!<D,Y:5=9F5(F';V(!:/6\IB^FJ2\XCD\#*I`&C
-MT=41:3N=G:B1BK.7@T`%M0@ED^PS<6]8]ZSFVV=+7I(!6G+@B(<_.QMKZ,+C
-MP?S=9:<TEHE`5##:`#QP*9FO/J4)X#S,DH0I/,VN<I-"I?>!AH05%,=4FMRB
-MYGC#-'0,C?S`()(@OMJ:H;*4XKNW9@(B*AO"*FN8%(LOD=#YZ90@/WU;_RM_
-M8:%-_K)CHLNW2@4GJXN^QX`YZA(064OA.]*F#6A!:T@%KG4\<DM[>G(0GPB(
-M@S];2D30M_45-;R64'B'OA4[3D&O<U_[Y\6QZL^!WB*(/[Y\[9[IBL/D+6F8
-M(0`K&TVXN\>^:%O2]2MH@$N^2].0*$R,@'F*KO3UJE='8:(1)!?:-,0<'9$0
-MT'G?][N@NQZE;4<")2C206+O@4/J<II#8N(?RDTQ$P>A#@*262!=[[5&K2%5
-MWVN59(CLOH:\KX'IG300X-!0@!E\]F3B_.Z2>)#D(\ARG:($`Z4#43J?!"?K
-MFF:_J;SB(2VF=O#G]UD>3W4!"VR/5!#V\+\1@G>XAG3Y*%CY)SM\4B'6:G-G
-MRW".WDY9_:+`#!4U>\X:YT*-Q;$)",BVC_HT@.K8^>SE*1+C-'C$UN6=`_(R
-M`D(TB&LQB5J!$]7S_M83O,B+M>*ZX!%CKU$$2+9\\\7P?N#F^,"'EO?(O=56
-MW![SJ6W-$*N>(G=%QW->Y5HYLB`F#GZA)("EE1VMZE(TI^9('S(@5_S2(6'A
-MS]FN#(]#<YU)0@5=NV)Z_6D05IZ=VR7PA.N:VY[XTB(DS`==@[`%U^YLNBC?
-M*Z]8Y%N1"JGB`H.YEHW>O/'0HC"`BVO=G`0U6OBFW/Z.@JN;:2&B2`$+>"%-
-MX)1A\239!5UT@JH@%TQ_2',7-?]HY<?^P?(/%GQ(0@3)GT?VI8ZMG7N,3:)(
-M%Y0S9`EEUI>W:[8?S\]-<<-B$O2<T(R+B7UC;ZX@,SS$K,8^QS>.OP@!5,*1
-M;6,@7-FFK&-/E[=K_R/$96($!LL]D]#BMFYU^JZ#&>X'2SO?9T>\3""^\PP!
-M8S$RMV\!03.LX.]DO7B802@"VEIMIX@6@1C/[:GS,TC>JM"!8ZX@&SC7GU8A
-MN91JAI=)1`IN_Q.B0#7190>6/G$A>/E]\F"T3G7]CH=)K/#AO2H"8''))S?B
-MG<)DBF0[)%KLORUMBC@A+F+-8=_I$+$_G(SMJV54@K7/H\J^"'5?*F_T*=^I
-M'.]\,5OR(?3=/VW9#(2]'J9*MJ0B!0^(C^>.R9`3S=U!GWM>Y!T\!L%@@%I<
-MG[Z[IGWJH@Q)[_UY8B#)45W18%;6Z#.UT5DQ4)0!,01B!+:Y<8]6@#E;'-%#
-M$A64Z5*`,PSD0/JM7OY^&F4&0B#RF0S]>0*2Z.VVJ1J0\>MX;^1!]:S:#@JA
-MUVSW">?Q^;-?D%@$`]1&+OQ`27&QKIC=&[,"2%R29X2*(DBX^N3Y#5ISL2?(
-M:NQ<_UQ2(MJW.VP9J<[-KT?I@"XE)UHE4L,CZ-)VT(>-W%RBIHP1/7F>,?]@
-MF.,)N^5"9%(+^.I`>+H3"1M5_IK`D5!""W?LH(@@5?Z"^NFT_#D`P(BR&F[U
-MB`*_V^:!O-C%A#LK93!02&:``K*"T8+9D;74T^./JD8Z$1_7^7O\T:X=!$MI
-M]!IU77]E.-K.I,H0-E41\7787$.@ABM#':CU(K[-S#G#1Z07VHO\D*K^L60&
-M_FOO^L$UR2D578:+-D06K*AN<.G1RM;&BOTJ0A$$2N[N]?$R*)J/EC9O.D1:
-MK9X'5-1=ZI#JGQXZO+<\B+RR=?O9_PYJSV+[/&00#0XY^5C?'4?!I2W46D=$
-MX(MBV*OIZ?YS[[FX=4+2XKC44PQ@B;*%^_:,J&(;*/"F&$81P"K]^$"*$R'`
-MNZ-)GC`RBR>0`9SHKOFX.,`)>2Z3`2H@PE+SH@#5):^HB;1:(`1HD7=0IDO=
-M'3*8ZKJNB"B[`B=MOV4MYN^NA&75TU$0C-;[+.XPE$$!S6GC,*NCQC](^[+Q
-M[C$*I-+>8B((?VA%."V6X6;$P8O#`N(9G(.*N"]G@I[_/^=>5TKZ7=,99KIW
-MDHF,^QKSX)ZE_NR1J!W/XT@.WU44%G5IEWA\NW_4Y[VF!.9?)@`<ZOG^E67>
-MH/1?W^?@?/=E"(F=';L*D<<VR)6,X<6FM:,"A"4<(L2<V+'&Z#).((JSD6-A
-MYMC8+>O7,&Y2%2N.MM_)SWER%]2H@":=@QZSN-*%"*1OCY;ZJ-A7+-:J`B#(
-M9U56UH,+TV=ZU%"'ZM$FJSD:0HI5GOK_QX`@R.%94^3^%)+;#Y9.JU"[?0:W
-MX7M`""(O=553(ZNYT)+MG>P;(@0%&8!,!@`EXPO]'">>%47\GMYU:^+(!^%!
-M]:[I_CI%/P8U<M?4/F3ZQ/6?[^NOV"$`/G#_/4).ABP/BU1`ZL06;FTV6[V6
-MYEWJ]_Q>=15T0?HVQIC;6P:X=3+\"CI\!\_&Y4L!!UK,#O0/%Q,SIU4_.H@"
-M"B1%>=6T4D!P1)@B('T&8,>[-W6G/$"$*VFS00@=%Q-110A5WC(_OC'@,-E'
-MVW'NTSLOD_+;:SMI6]Z-Y#544T4-3*X*C[F%'F:_:,?7>WK8]!)N]-F-M9+C
-M'BE^OM:;$VFQV6$&6P80@7RT<G\<;PI_-?ZROUR(>=JJ^)'>3'/L_>=7U;33
-M$PY[K;)#P-WI_,SKB=(@]L3WOIEVT=OU]_L@6*,%T$U9O(K`T`/``-FFZ?EO
-M^W[*/LK-NG$N<:._G+1;K_1ROO=BD$`'9-V@]9]C\)A-$V*!>]:#<S7\G1@J
-M*!)22`*%TU6LW>WS^C\B'[TLBW0&38H``"*E\]\EL%DN5PAHV.P4H;]VD0Q-
-M[>U.*60`YV^^;MT,/6C@37+I&L;4`LI.3J>)V*VR:";<F+9('?9\<B`W[LW*
-MKB,T8>D4$0ZJ_%P1NCX(KRT[&SO<WARZK;JNH#5CS*$`%Q(;X8U=5;6G3Q++
-MMOBR(;WN"66(RYA^6J[[E,5U`L7:DDA`#RW\3_<R+SSI%MI<N\M/"F1%W?$D
-M=6-#PC^(Q]M-9^T`"Y<I;?P\[1L4)2X#JWUS:J\'>UN"RY*SU.,6G[*)B<"!
-M3]#\:?1&\U/?!J9\:D;D0`"2R[FR_:9RF:G0]V4E=9WZ^+XD`-+SW5V4"-GZ
-M^26[/5SR(`57$Y-OWTXG:>L<GGUWSH^U2H0`D(;'EBY6Z0T2]/Z>W8QLXW-+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Sun Feb 12 09:27:28 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76E30CDC9A4;
 Sun, 12 Feb 2017 09:27:28 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 5175DB05;
 Sun, 12 Feb 2017 09:27:28 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1C9RRVL072141;
 Sun, 12 Feb 2017 09:27:27 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1C9RRDX072140;
 Sun, 12 Feb 2017 09:27:27 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702120927.v1C9RRDX072140@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Sun, 12 Feb 2017 09:27:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313681 - stable/11/sbin/kldload
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Feb 2017 09:27:28 -0000

Author: ngie
Date: Sun Feb 12 09:27:27 2017
New Revision: 313681
URL: https://svnweb.freebsd.org/changeset/base/313681

Log:
  MFC r313273:
  
  style(9) cleanup
  
  - Delete trailing whitespace
  - Fix alignment/variable sorting
  - Delete single-line enclosing braces

Modified:
  stable/11/sbin/kldload/kldload.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/kldload/kldload.c
==============================================================================
--- stable/11/sbin/kldload/kldload.c	Sun Feb 12 09:24:18 2017	(r313680)
+++ stable/11/sbin/kldload/kldload.c	Sun Feb 12 09:27:27 2017	(r313681)
@@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$");
 
 #define	PATHCTL	"kern.module_path"
 
-static int	path_check(const char *, int);
-static void	usage(void);
-
 /*
  * Check to see if the requested module is specified as a filename with no
  * path.  If so and if a file by the same name exists in the module path,
@@ -52,43 +49,37 @@ static void	usage(void);
 static int
 path_check(const char *kldname, int quiet)
 {
-	int	mib[5], found;
-	size_t	miblen, pathlen;
-	char	kldpath[MAXPATHLEN];
 	char	*path, *tmppath, *element;
 	struct	stat sb;
+	int	mib[5];
+	char	kldpath[MAXPATHLEN];
+	size_t	miblen, pathlen;
 	dev_t	dev;
 	ino_t	ino;
+	int	found;
 
-	if (strchr(kldname, '/') != NULL) {
+	if (strchr(kldname, '/') != NULL)
 		return (0);
-	}
-	if (strstr(kldname, ".ko") == NULL) {
+	if (strstr(kldname, ".ko") == NULL)
 		return (0);
-	}
-	if (stat(kldname, &sb) != 0) {
+	if (stat(kldname, &sb) != 0)
 		return (0);
-	}
 
 	found = 0;
 	dev = sb.st_dev;
 	ino = sb.st_ino;
 
 	miblen = nitems(mib);
-	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0) {
+	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0)
 		err(1, "sysctlnametomib(%s)", PATHCTL);
-	}
-	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s) - size only", PATHCTL);
-	}
 	path = malloc(pathlen + 1);
-	if (path == NULL) {
+	if (path == NULL)
 		err(1, "allocating %lu bytes for the path",
 		    (unsigned long)pathlen + 1);
-	}
-	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s)", PATHCTL);
-	}
 	tmppath = path;
 
 	while ((element = strsep(&tmppath, ";")) != NULL) {
@@ -97,39 +88,36 @@ path_check(const char *kldname, int quie
 			strlcat(kldpath, "/", MAXPATHLEN);
 		}
 		strlcat(kldpath, kldname, MAXPATHLEN);
-				
-		if (stat(kldpath, &sb) == -1) {
+
+		if (stat(kldpath, &sb) == -1)
 			continue;
-		}	
 
 		found = 1;
 
 		if (sb.st_dev != dev || sb.st_ino != ino) {
-			if (!quiet) {
+			if (!quiet)
 				warnx("%s will be loaded from %s, not the "
 				    "current directory", kldname, element);
-			}
 			break;
-		} else if (sb.st_dev == dev && sb.st_ino == ino) {
+		} else if (sb.st_dev == dev && sb.st_ino == ino)
 			break;
-		}
 	}
 
 	free(path);
-	
+
 	if (!found) {
-		if (!quiet) {
+		if (!quiet)
 			warnx("%s is not in the module path", kldname);
-		}
 		return (-1);
 	}
-	
+
 	return (0);
 }
 
 static void
 usage(void)
 {
+
 	fprintf(stderr, "usage: kldload [-nqv] file ...\n");
 	exit(1);
 }
@@ -138,17 +126,17 @@ int
 main(int argc, char** argv)
 {
 	int c;
+	int check_loaded;
 	int errors;
 	int fileid;
-	int verbose;
 	int quiet;
-	int check_loaded;
+	int verbose;
 
 	errors = 0;
 	verbose = 0;
 	quiet = 0;
 	check_loaded = 0;
-    
+
 	while ((c = getopt(argc, argv, "nqv")) != -1) {
 		switch (c) {
 		case 'q':
@@ -204,9 +192,8 @@ main(int argc, char** argv)
 					printf("Loaded %s, id=%d\n", argv[0],
 					    fileid);
 			}
-		} else {
+		} else
 			errors++;
-		}
 		argv++;
 	}
 

From owner-svn-src-stable@freebsd.org  Sun Feb 12 09:27:36 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 383E0CDC9D7;
 Sun, 12 Feb 2017 09:27:36 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 1054AB5D;
 Sun, 12 Feb 2017 09:27:35 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1C9RZHK072191;
 Sun, 12 Feb 2017 09:27:35 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1C9RZdx072190;
 Sun, 12 Feb 2017 09:27:35 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702120927.v1C9RZdx072190@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Sun, 12 Feb 2017 09:27:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313682 - stable/10/sbin/kldload
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Feb 2017 09:27:36 -0000

Author: ngie
Date: Sun Feb 12 09:27:34 2017
New Revision: 313682
URL: https://svnweb.freebsd.org/changeset/base/313682

Log:
  MFC r313273:
  
  style(9) cleanup
  
  - Delete trailing whitespace
  - Fix alignment/variable sorting
  - Delete single-line enclosing braces

Modified:
  stable/10/sbin/kldload/kldload.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sbin/kldload/kldload.c
==============================================================================
--- stable/10/sbin/kldload/kldload.c	Sun Feb 12 09:27:27 2017	(r313681)
+++ stable/10/sbin/kldload/kldload.c	Sun Feb 12 09:27:34 2017	(r313682)
@@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$");
 
 #define	PATHCTL	"kern.module_path"
 
-static int	path_check(const char *, int);
-static void	usage(void);
-
 /*
  * Check to see if the requested module is specified as a filename with no
  * path.  If so and if a file by the same name exists in the module path,
@@ -52,43 +49,37 @@ static void	usage(void);
 static int
 path_check(const char *kldname, int quiet)
 {
-	int	mib[5], found;
-	size_t	miblen, pathlen;
-	char	kldpath[MAXPATHLEN];
 	char	*path, *tmppath, *element;
 	struct	stat sb;
+	int	mib[5];
+	char	kldpath[MAXPATHLEN];
+	size_t	miblen, pathlen;
 	dev_t	dev;
 	ino_t	ino;
+	int	found;
 
-	if (strchr(kldname, '/') != NULL) {
+	if (strchr(kldname, '/') != NULL)
 		return (0);
-	}
-	if (strstr(kldname, ".ko") == NULL) {
+	if (strstr(kldname, ".ko") == NULL)
 		return (0);
-	}
-	if (stat(kldname, &sb) != 0) {
+	if (stat(kldname, &sb) != 0)
 		return (0);
-	}
 
 	found = 0;
 	dev = sb.st_dev;
 	ino = sb.st_ino;
 
 	miblen = sizeof(mib) / sizeof(mib[0]);
-	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0) {
+	if (sysctlnametomib(PATHCTL, mib, &miblen) != 0)
 		err(1, "sysctlnametomib(%s)", PATHCTL);
-	}
-	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, NULL, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s) - size only", PATHCTL);
-	}
 	path = malloc(pathlen + 1);
-	if (path == NULL) {
+	if (path == NULL)
 		err(1, "allocating %lu bytes for the path",
 		    (unsigned long)pathlen + 1);
-	}
-	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1) {
+	if (sysctl(mib, miblen, path, &pathlen, NULL, 0) == -1)
 		err(1, "getting path: sysctl(%s)", PATHCTL);
-	}
 	tmppath = path;
 
 	while ((element = strsep(&tmppath, ";")) != NULL) {
@@ -97,39 +88,36 @@ path_check(const char *kldname, int quie
 			strlcat(kldpath, "/", MAXPATHLEN);
 		}
 		strlcat(kldpath, kldname, MAXPATHLEN);
-				
-		if (stat(kldpath, &sb) == -1) {
+
+		if (stat(kldpath, &sb) == -1)
 			continue;
-		}	
 
 		found = 1;
 
 		if (sb.st_dev != dev || sb.st_ino != ino) {
-			if (!quiet) {
+			if (!quiet)
 				warnx("%s will be loaded from %s, not the "
 				    "current directory", kldname, element);
-			}
 			break;
-		} else if (sb.st_dev == dev && sb.st_ino == ino) {
+		} else if (sb.st_dev == dev && sb.st_ino == ino)
 			break;
-		}
 	}
 
 	free(path);
-	
+
 	if (!found) {
-		if (!quiet) {
+		if (!quiet)
 			warnx("%s is not in the module path", kldname);
-		}
 		return (-1);
 	}
-	
+
 	return (0);
 }
 
 static void
 usage(void)
 {
+
 	fprintf(stderr, "usage: kldload [-nqv] file ...\n");
 	exit(1);
 }
@@ -138,17 +126,17 @@ int
 main(int argc, char** argv)
 {
 	int c;
+	int check_loaded;
 	int errors;
 	int fileid;
-	int verbose;
 	int quiet;
-	int check_loaded;
+	int verbose;
 
 	errors = 0;
 	verbose = 0;
 	quiet = 0;
 	check_loaded = 0;
-    
+
 	while ((c = getopt(argc, argv, "nqv")) != -1) {
 		switch (c) {
 		case 'q':
@@ -204,9 +192,8 @@ main(int argc, char** argv)
 					printf("Loaded %s, id=%d\n", argv[0],
 					    fileid);
 			}
-		} else {
+		} else
 			errors++;
-		}
 		argv++;
 	}
 

From owner-svn-src-stable@freebsd.org  Sun Feb 12 18:52:03 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12790CDCC73;
 Sun, 12 Feb 2017 18:52:03 +0000 (UTC)
 (envelope-from jilles@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 mx1.freebsd.org (Postfix) with ESMTPS id D6B4F17E9;
 Sun, 12 Feb 2017 18:52:02 +0000 (UTC)
 (envelope-from jilles@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1CIq1Bx002858;
 Sun, 12 Feb 2017 18:52:01 GMT (envelope-from jilles@FreeBSD.org)
Received: (from jilles@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1CIq1Ur002671;
 Sun, 12 Feb 2017 18:52:01 GMT (envelope-from jilles@FreeBSD.org)
Message-Id: <201702121852.v1CIq1Ur002671@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jilles set sender to
 jilles@FreeBSD.org using -f
From: Jilles Tjoelker <jilles@FreeBSD.org>
Date: Sun, 12 Feb 2017 18:52:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313685 - in stable/10: lib/libc/sys share/man/man4
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Feb 2017 18:52:03 -0000

Author: jilles
Date: Sun Feb 12 18:52:01 2017
New Revision: 313685
URL: https://svnweb.freebsd.org/changeset/base/313685

Log:
  MFC r313174: Clean up documentation of AF_UNIX control messages.
  
  Document AF_UNIX control messages in unix(4) only, not split between unix(4)
  and recv(2).
  
  Also, warn about LOCAL_CREDS effective uid/gid fields, since the write could
  be from a setuid or setgid program (with the explicit SCM_CREDS and
  LOCAL_PEERCRED, the credentials are read at such a time that it can be
  assumed that the process intends for them to be used in this context).

Modified:
  stable/10/lib/libc/sys/recv.2
  stable/10/share/man/man4/unix.4
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/sys/recv.2
==============================================================================
--- stable/10/lib/libc/sys/recv.2	Sun Feb 12 15:22:50 2017	(r313684)
+++ stable/10/lib/libc/sys/recv.2	Sun Feb 12 18:52:01 2017	(r313685)
@@ -28,7 +28,7 @@
 .\"     @(#)recv.2	8.3 (Berkeley) 2/21/94
 .\" $FreeBSD$
 .\"
-.Dd March 19, 2013
+.Dd February 3, 2017
 .Dt RECV 2
 .Os
 .Sh NAME
@@ -218,57 +218,10 @@ with no data buffer provided immediately
 .Fn accept
 system call.
 .Pp
-Open file descriptors are now passed as ancillary data for
+With
 .Dv AF_UNIX
-domain sockets, with
-.Fa cmsg_level
-set to
-.Dv SOL_SOCKET
-and
-.Fa cmsg_type
-set to
-.Dv SCM_RIGHTS .
-The close-on-exec flag on received descriptors is set according to the
-.Dv MSG_CMSG_CLOEXEC
-flag passed to
-.Fn recvmsg .
-.Pp
-Process credentials can also be passed as ancillary data for
-.Dv AF_UNIX
-domain sockets using a
-.Fa cmsg_type
-of
-.Dv SCM_CREDS .
-In this case,
-.Fa cmsg_data
-should be a structure of type
-.Fa cmsgcred ,
-which is defined in
-.In sys/socket.h
-as follows:
-.Bd -literal
-struct cmsgcred {
-	pid_t	cmcred_pid;		/* PID of sending process */
-	uid_t	cmcred_uid;		/* real UID of sending process */
-	uid_t	cmcred_euid;		/* effective UID of sending process */
-	gid_t	cmcred_gid;		/* real GID of sending process */
-	short	cmcred_ngroups;		/* number or groups */
-	gid_t	cmcred_groups[CMGROUP_MAX];	/* groups */
-};
-.Ed
-.Pp
-If a sender supplies ancillary data with enough space for the above struct
-tagged as
-.Dv SCM_CREDS
-control message type to the
-.Fn sendmsg
-system call, then kernel will fill in the credential information of the
-sending process and deliver it to the receiver.
-Since receiver usually has no control over a sender, this method of retrieving
-credential information isn't reliable.
-For reliable retrieval of remote side credentials it is advised to use the
-.Dv LOCAL_CREDS
-socket option on the receiving socket.
+domain sockets, ancillary data can be used to pass file descriptors and
+process credentials.
 See
 .Xr unix 4
 for details.

Modified: stable/10/share/man/man4/unix.4
==============================================================================
--- stable/10/share/man/man4/unix.4	Sun Feb 12 15:22:50 2017	(r313684)
+++ stable/10/share/man/man4/unix.4	Sun Feb 12 18:52:01 2017	(r313685)
@@ -32,7 +32,7 @@
 .\"     @(#)unix.4	8.1 (Berkeley) 6/9/93
 .\" $FreeBSD$
 .\"
-.Dd March 19, 2013
+.Dd February 3, 2017
 .Dt UNIX 4
 .Os
 .Sh NAME
@@ -123,12 +123,12 @@ of a
 or
 .Xr sendto 2
 must be writable.
-.Sh PASSING FILE DESCRIPTORS
+.Sh CONTROL MESSAGES
 The
 .Ux Ns -domain
 sockets support the communication of
 .Ux
-file descriptors through the use of the
+file descriptors and process credentials through the use of the
 .Va msg_control
 field in the
 .Fa msg
@@ -136,13 +136,12 @@ argument to
 .Xr sendmsg 2
 and
 .Xr recvmsg 2 .
-.Pp
-Any valid descriptor may be sent in a message.
-The file descriptor(s) to be passed are described using a
+The items to be passed are described using a
 .Vt "struct cmsghdr"
 that is defined in the include file
 .In sys/socket.h .
-The type of the message is
+.Pp
+To send file descriptors, the type of the message is
 .Dv SCM_RIGHTS ,
 and the data portion of the messages is an array of integers
 representing the file descriptors to be passed.
@@ -165,6 +164,39 @@ call.
 Descriptors that are awaiting delivery, or that are
 purposely not received, are automatically closed by the system
 when the destination socket is closed.
+.Pp
+Credentials of the sending process can be transmitted explicitly using a
+control message of type
+.Dv SCM_CREDS
+with a data portion of type
+.Vt "struct cmsgcred" ,
+defined in
+.In sys/socket.h
+as follows:
+.Bd -literal
+struct cmsgcred {
+  pid_t	cmcred_pid;		/* PID of sending process */
+  uid_t	cmcred_uid;		/* real UID of sending process */
+  uid_t	cmcred_euid;		/* effective UID of sending process */
+  gid_t	cmcred_gid;		/* real GID of sending process */
+  short	cmcred_ngroups;		/* number of groups */
+  gid_t	cmcred_groups[CMGROUP_MAX];	/* groups */
+};
+.Ed
+.Pp
+The sender should pass a zeroed buffer which will be filled in by the system.
+.Pp
+The group list is truncated to at most
+.Dv CMGROUP_MAX
+GIDs.
+.Pp
+The process ID
+.Fa cmcred_pid
+should not be looked up (such as via the
+.Dv KERN_PROC_PID
+sysctl) for making security decisions.
+The sending process could have exited and its process ID already been
+reused for a new process.
 .Sh SOCKET OPTIONS
 .Tn UNIX
 domain sockets support a number of socket options which can be set with
@@ -180,7 +212,13 @@ or a
 .Dv SOCK_STREAM
 socket.
 This option provides a mechanism for the receiver to
-receive the credentials of the process as a
+receive the credentials of the process calling
+.Xr write 2 ,
+.Xr send 2 ,
+.Xr sendto 2
+or
+.Xr sendmsg 2
+as a
 .Xr recvmsg 2
 control message.
 The
@@ -205,6 +243,10 @@ struct sockcred {
 };
 .Ed
 .Pp
+The current implementation truncates the group list to at most
+.Dv CMGROUP_MAX
+groups.
+.Pp
 The
 .Fn SOCKCREDSIZE
 macro computes the size of the
@@ -225,7 +267,28 @@ On
 and
 .Dv SOCK_SEQPACKET
 sockets credentials are passed only on the first read from a socket,
-then system clears the option on socket.
+then the system clears the option on the socket.
+.Pp
+This option and the above explicit
+.Vt "struct cmsgcred"
+both use the same value
+.Dv SCM_CREDS
+but incompatible control messages.
+If this option is enabled and the sender attached a
+.Dv SCM_CREDS
+control message with a
+.Vt "struct cmsgcred" ,
+it will be discarded and a
+.Vt "struct sockcred"
+will be included.
+.Pp
+Many setuid programs will
+.Xr write 2
+data at least partially controlled by the invoker,
+such as error messages.
+Therefore, a message accompanied by a particular
+.Fa sc_euid
+value should not be trusted as being from that user.
 .It Dv LOCAL_CONNWAIT
 Used with
 .Dv SOCK_STREAM

From owner-svn-src-stable@freebsd.org  Mon Feb 13 08:23:02 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2E77CDC668
 for <svn-src-stable@mailman.ysv.freebsd.org>;
 Mon, 13 Feb 2017 08:23:02 +0000 (UTC) (envelope-from ed@nuxi.nl)
Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com
 [IPv6:2607:f8b0:4002:c09::22d])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8AE9A185C
 for <svn-src-stable@freebsd.org>; Mon, 13 Feb 2017 08:23:02 +0000 (UTC)
 (envelope-from ed@nuxi.nl)
Received: by mail-yb0-x22d.google.com with SMTP id j82so25225035ybg.1
 for <svn-src-stable@freebsd.org>; Mon, 13 Feb 2017 00:23:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=nuxi-nl.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=Hp2GqAOQlmbHgvXNgMws9a7QpSv/vIQ62jVxr5JZFfs=;
 b=sr6Wi055xmnHJ9zkCJWNp2LCGdh/qoQLmrJ7Dg+Ew43VDQum80Oncg6tre4lsslEMx
 2HPS6btbSLx8aAgH0TDedcOSM822kEUDc3CWL6MJkioNMKznvgi5Y2PHT9Khx6cUO0qN
 UC2HkiwHYV7aCQ0QxmgVj3MnFOD/OqzD739qZqgKDKsDD3GDdtcO9GMRNFu3e5nvaftQ
 FXE3e96ZHgMYX5yPzqlNfVV+CPPTvyrbPcqp7r13O1r1czxXqHAasMqLgks8tK7z8mjy
 5f0aDGti3uzkJFtsSwlfSX4iadQM8Md65Dd/C0mSZ9KBx5uicck3dPnRGj0HAelFi6Bf
 A7Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=Hp2GqAOQlmbHgvXNgMws9a7QpSv/vIQ62jVxr5JZFfs=;
 b=qElL7djH3D9rw/ngPyugNaT8+J5cGtSCbQrPVMMCTcPVXwhifp5ybS14bGA0PmvW9z
 QEnXBdfBzexCbnzZyVEiIaBn7m8aMG2OqSKX1OH9pbm3XyrAVhFSGeEjdt+ywo5FBsih
 sbGy2Ll0LM5KxBHDc21OAxXDl2SGgZNWB3iMQ36km8NOSN7gR3o0O5ucZf5kYm+jFARo
 Zr33JOfB85HClonxzKsP58qWlr0iv5I9Xyd/K1OtukvuQ82EsL6sm2vNyLc3tmElmuYw
 pEjiu/5DzccfEArTK0um5NklKlDyeymPs2iq/KzjnePs7FgGOresXSti/XxsgpgpLqki
 OLcA==
X-Gm-Message-State: AMke39maMwy1yqAATbgUgoARUrxnsdtCs/ceTPjZO6vTwBVDJZMvbfBl/bB8QzfkAGXxwCxrbqumglGPtuQbSQ==
X-Received: by 10.37.104.73 with SMTP id d70mr16159588ybc.148.1486974181153;
 Mon, 13 Feb 2017 00:23:01 -0800 (PST)
MIME-Version: 1.0
Received: by 10.129.52.76 with HTTP; Mon, 13 Feb 2017 00:22:30 -0800 (PST)
In-Reply-To: <65538136-4b19-bc06-f3e0-302ef2fc2359@vangyzen.net>
References: <201702110735.v1B7ZROH028648@repo.freebsd.org>
 <CABh_MKmYuP-Yb3VLJ3EOb1dODtHmN8uoSuytTrjTQm=C9iwuMw@mail.gmail.com>
 <65538136-4b19-bc06-f3e0-302ef2fc2359@vangyzen.net>
From: Ed Schouten <ed@nuxi.nl>
Date: Mon, 13 Feb 2017 09:22:30 +0100
Message-ID: <CABh_MKmbdvbW3c2w9AJ_S5syieM92oFQy+oBvbqCbp6ZkQiT3Q@mail.gmail.com>
Subject: Re: svn commit: r313632 - in
 stable/10/contrib/netbsd-tests/lib/libc/gen: . posix_spawn
To: Eric van Gyzen <eric@vangyzen.net>
Cc: Ngie Cooper <ngie@freebsd.org>, src-committers <src-committers@freebsd.org>,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org, 
 svn-src-stable-10@freebsd.org
Content-Type: text/plain; charset=UTF-8
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 08:23:02 -0000

2017-02-11 15:28 GMT+01:00 Eric van Gyzen <eric@vangyzen.net>:
> I would be concerned that app developers would read this definition, ignore
> the one in the man page, and use the __-prefixed types in their apps.

I think that's a concern that's not specific to the change at hand, as
that's simply how BSD header files work. Take a look at the
declaration of kill() in our copy of <signal.h>:

int     kill(__pid_t, int);

This is simply the construct that the BSDs use to depend on a type
without exposing it.

-- 
Ed Schouten <ed@nuxi.nl>
Nuxi, 's-Hertogenbosch, the Netherlands
KvK-nr.: 62051717

From owner-svn-src-stable@freebsd.org  Mon Feb 13 12:07:09 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE560CDCD88;
 Mon, 13 Feb 2017 12:07:09 +0000 (UTC) (envelope-from ae@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 mx1.freebsd.org (Postfix) with ESMTPS id 9DA26DD5;
 Mon, 13 Feb 2017 12:07:09 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1DC78uI024511;
 Mon, 13 Feb 2017 12:07:08 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1DC78Ii024510;
 Mon, 13 Feb 2017 12:07:08 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201702131207.v1DC78Ii024510@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Mon, 13 Feb 2017 12:07:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313698 - stable/11/sys/geom/part
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 12:07:09 -0000

Author: ae
Date: Mon Feb 13 12:07:08 2017
New Revision: 313698
URL: https://svnweb.freebsd.org/changeset/base/313698

Log:
  MFC r313185:
    Check that primary GPT header is valid before wiping partitioning.
  
    This allows safely destroy corrupted GPT when primary header was
    rewritten by some data, that do not want to destroy.

Modified:
  stable/11/sys/geom/part/g_part_gpt.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/geom/part/g_part_gpt.c
==============================================================================
--- stable/11/sys/geom/part/g_part_gpt.c	Mon Feb 13 11:37:52 2017	(r313697)
+++ stable/11/sys/geom/part/g_part_gpt.c	Mon Feb 13 12:07:08 2017	(r313698)
@@ -687,10 +687,11 @@ g_part_gpt_destroy(struct g_part_table *
 	table->hdr = NULL;
 
 	/*
-	 * Wipe the first 2 sectors to clear the partitioning. Wipe the last
-	 * sector only if it has valid secondary header.
+	 * Wipe the first 2 sectors and last one to clear the partitioning.
+	 * Wipe sectors only if they have valid metadata.
 	 */
-	basetable->gpt_smhead |= 3;
+	if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK)
+		basetable->gpt_smhead |= 3;
 	if (table->state[GPT_ELT_SECHDR] == GPT_STATE_OK &&
 	    table->lba[GPT_ELT_SECHDR] == pp->mediasize / pp->sectorsize - 1)
 		basetable->gpt_smtail |= 1;

From owner-svn-src-stable@freebsd.org  Mon Feb 13 15:16:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80E0ACDDB7E;
 Mon, 13 Feb 2017 15:16:25 +0000 (UTC)
 (envelope-from eric@vangyzen.net)
Received: from smtp.vangyzen.net (hotblack.vangyzen.net
 [IPv6:2607:fc50:1000:7400:216:3eff:fe72:314f])
 by mx1.freebsd.org (Postfix) with ESMTP id 68D491E9C;
 Mon, 13 Feb 2017 15:16:25 +0000 (UTC)
 (envelope-from eric@vangyzen.net)
Received: from sweettea.beer.town (unknown [76.164.8.130])
 by smtp.vangyzen.net (Postfix) with ESMTPSA id 844FD564DF;
 Mon, 13 Feb 2017 09:16:24 -0600 (CST)
Subject: Re: svn commit: r313632 - in
 stable/10/contrib/netbsd-tests/lib/libc/gen: . posix_spawn
To: Ed Schouten <ed@nuxi.nl>
References: <201702110735.v1B7ZROH028648@repo.freebsd.org>
 <CABh_MKmYuP-Yb3VLJ3EOb1dODtHmN8uoSuytTrjTQm=C9iwuMw@mail.gmail.com>
 <65538136-4b19-bc06-f3e0-302ef2fc2359@vangyzen.net>
 <CABh_MKmbdvbW3c2w9AJ_S5syieM92oFQy+oBvbqCbp6ZkQiT3Q@mail.gmail.com>
Cc: Ngie Cooper <ngie@freebsd.org>,
 src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
From: Eric van Gyzen <eric@vangyzen.net>
Message-ID: <be301cb3-a328-441a-63f5-7430ba8832f3@vangyzen.net>
Date: Mon, 13 Feb 2017 09:16:20 -0600
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101
 Thunderbird/45.6.0
MIME-Version: 1.0
In-Reply-To: <CABh_MKmbdvbW3c2w9AJ_S5syieM92oFQy+oBvbqCbp6ZkQiT3Q@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 15:16:25 -0000

On 02/13/2017 02:22, Ed Schouten wrote:
> 2017-02-11 15:28 GMT+01:00 Eric van Gyzen <eric@vangyzen.net>:
>> I would be concerned that app developers would read this definition, ignore
>> the one in the man page, and use the __-prefixed types in their apps.
>
> I think that's a concern that's not specific to the change at hand, as
> that's simply how BSD header files work. Take a look at the
> declaration of kill() in our copy of <signal.h>:
>
> int     kill(__pid_t, int);
>
> This is simply the construct that the BSDs use to depend on a type
> without exposing it.

Note that we [usually] expose that type earlier in that same file:

#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
#ifndef _PID_T_DECLARED
typedef __pid_t         pid_t;
#define _PID_T_DECLARED
#endif
#endif

Apparently, signal.h should not expose pid_t in a strict pre-2001 POSIX 
environment.  Without this restriction, the prototype for kill() would 
probably use pid_t, as is done in several other files, such as spawn.h:

#ifndef _PID_T_DECLARED
typedef __pid_t         pid_t;
#define _PID_T_DECLARED
#endif

int posix_spawn(pid_t * __restrict, const char * __restrict,
...

Let me be clear:  Your change is useful and good, and I think you should 
commit it.  I would suggest using the above construct for the 
__-prefixed types, but it's only a suggestion.

Cheers,

Eric

From owner-svn-src-stable@freebsd.org  Mon Feb 13 16:06:40 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B0FBCDDE82;
 Mon, 13 Feb 2017 16:06:40 +0000 (UTC) (envelope-from ken@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 mx1.freebsd.org (Postfix) with ESMTPS id 0C34E98B;
 Mon, 13 Feb 2017 16:06:39 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1DG6dHo021934;
 Mon, 13 Feb 2017 16:06:39 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1DG6dIx021933;
 Mon, 13 Feb 2017 16:06:39 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201702131606.v1DG6dIx021933@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" <ken@FreeBSD.org>
Date: Mon, 13 Feb 2017 16:06:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313699 - stable/11/sys/dev/isp
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 16:06:40 -0000

Author: ken
Date: Mon Feb 13 16:06:38 2017
New Revision: 313699
URL: https://svnweb.freebsd.org/changeset/base/313699

Log:
  MFC r313568:
  
    ------------------------------------------------------------------------
    r313568 | ken | 2017-02-10 15:02:45 -0700 (Fri, 10 Feb 2017) | 68 lines
  
    Change the isp(4) driver to not adjust the tag type for REQUEST SENSE.
  
    The isp(4) driver was changing the tag type for REQUEST SENSE
    commands to Head of Queue, when the CAM CCB flag
    CAM_TAG_ACTION_VALID was NOT set.  CAM_TAG_ACTION_VALID is set
    when the tag action in the XPT_SCSI_IO is not CAM_TAG_ACTION_NONE
    and when the target has tagged queueing turned on.
  
    In most cases when CAM_TAG_ACTION_VALID is not set, it is because
    the target is not doing tagged queueing.  In those cases, trying to
    send a Head of Queue tag may cause problems.  Instead, default to
    sending a simple tag.
  
    IBM tape drives claim to support tagged queueing in their standard
    Inquiry data, but have the DQue bit set in the control mode page
    (mode page 10).  CAM correctly detects that these drives do not
    support tagged queueing, and clears the CAM_TAG_ACTION_VALID flag
    on CCBs sent down to the drives.
  
    This caused the isp(4) driver to go down the path of setting the
    tag action to a default value, and for Request Sense commands only,
    set the tag action to Head of Queue.
  
    If an IBM tape drive does get a Head of Queue tag, it rejects it with
    Invalid Message Error (0x49,0x00).  (The Qlogic firmware translates that
    to a Transport Error, which the driver translates to an Unrecoverable
    HBA Error, or CAM_UNREC_HBA_ERROR.) So, by default, it wasn't possible
    to get a good response from a REQUEST SENSE to an FC-attached IBM
    tape drive with the isp(4) driver.
  
    IBM tape drives (tested on an LTO-5 with G9N1 firmware and a TS1150
    with 4470 firmware) also have a bug in that sending a command with a
    non-simple tag attribute breaks the tape drive's Command Reference
    Number (CRN) accounting and causes it to ignore all subsequent
    commands because it and the initiator disagree about the next
    expected CRN.  The drives do reject the initial command with a head
    of queue tag with an Invalid Message Error (0x49,0x00), but after that
    they ignore any subsequent commands.  IBM confirmed that it is a bug,
    and sent me test firmware that fixes the bug.  However tape drives in
    the field will still exhibit the bug until they are upgraded.
  
    Request Sense is not often sent to targets because most errors are
    reported automatically through autosense in Fibre Channel and other
    modern transports.  ("Modern" meaning post SCSI-2.)  So this is not
    an error that would crop up frequently.  But Request Sense is useful on
    tape devices to report status information, aside from error reporting.
  
    This problem is less serious without FC-Tape features turned on,
    specifically precise delivery of commands (which enables Command
    Reference Numbers), enabled on the target and initiator.  Without
    FC-Tape features turned on, the target would return an error and
    things would continue on.
  
    And it also does not cause problems for targets that do tagged
    queueing, because in those cases the isp(4) driver just uses the
    tag type that is specified in the CCB, assuming the
    CAM_TAG_ACTION_VALID flag is set, and defaults to sending a Simple
    tag action if it isn't an ordered or head of queue tag.
  
    sys/dev/isp/isp.c:
    	In isp_start(), don't try to send Request Sense commands
    	with the Head of Queue tag attribute if the CCB doesn't
    	have a valid tag action.  The tag action likely isn't valid
    	because the target doesn't support tagged queueing.
  
    Sponsored by:	Spectra Logic
  
    ------------------------------------------------------------------------

Modified:
  stable/11/sys/dev/isp/isp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/isp/isp.c
==============================================================================
--- stable/11/sys/dev/isp/isp.c	Mon Feb 13 12:07:08 2017	(r313698)
+++ stable/11/sys/dev/isp/isp.c	Mon Feb 13 16:06:38 2017	(r313699)
@@ -4451,11 +4451,7 @@ isp_start(XS_T *xs)
 		if (XS_TAG_P(xs)) {
 			ttype = XS_TAG_TYPE(xs);
 		} else {
-			if (XS_CDBP(xs)[0] == 0x3) {
-				ttype = REQFLAG_HTAG;
-			} else {
-				ttype = REQFLAG_STAG;
-			}
+			ttype = REQFLAG_STAG;
 		}
 		if (ttype == REQFLAG_OTAG) {
 			ttype = FCP_CMND_TASK_ATTR_ORDERED;
@@ -4479,14 +4475,7 @@ isp_start(XS_T *xs)
 		if (XS_TAG_P(xs)) {
 			((ispreqt2_t *)reqp)->req_flags = XS_TAG_TYPE(xs);
 		} else {
-			/*
-			 * If we don't know what tag to use, use HEAD OF QUEUE
-			 * for Request Sense or Simple.
-			 */
-			if (XS_CDBP(xs)[0] == 0x3)	/* REQUEST SENSE */
-				((ispreqt2_t *)reqp)->req_flags = REQFLAG_HTAG;
-			else
-				((ispreqt2_t *)reqp)->req_flags = REQFLAG_STAG;
+			((ispreqt2_t *)reqp)->req_flags = REQFLAG_STAG;
 		}
 	} else {
 		sdparam *sdp = SDPARAM(isp, XS_CHANNEL(xs));

From owner-svn-src-stable@freebsd.org  Mon Feb 13 16:11:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38DAFCDDFE1;
 Mon, 13 Feb 2017 16:11:39 +0000 (UTC) (envelope-from ken@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 mx1.freebsd.org (Postfix) with ESMTPS id EB10CD37;
 Mon, 13 Feb 2017 16:11:38 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1DGBcnd024466;
 Mon, 13 Feb 2017 16:11:38 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1DGBbfe024465;
 Mon, 13 Feb 2017 16:11:37 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201702131611.v1DGBbfe024465@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" <ken@FreeBSD.org>
Date: Mon, 13 Feb 2017 16:11:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313700 - stable/10/sys/dev/isp
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 16:11:39 -0000

Author: ken
Date: Mon Feb 13 16:11:37 2017
New Revision: 313700
URL: https://svnweb.freebsd.org/changeset/base/313700

Log:
  MFC r313568:
  
    ------------------------------------------------------------------------
    r313568 | ken | 2017-02-10 15:02:45 -0700 (Fri, 10 Feb 2017) | 68 lines
  
    Change the isp(4) driver to not adjust the tag type for REQUEST SENSE.
  
    The isp(4) driver was changing the tag type for REQUEST SENSE
    commands to Head of Queue, when the CAM CCB flag
    CAM_TAG_ACTION_VALID was NOT set.  CAM_TAG_ACTION_VALID is set
    when the tag action in the XPT_SCSI_IO is not CAM_TAG_ACTION_NONE
    and when the target has tagged queueing turned on.
  
    In most cases when CAM_TAG_ACTION_VALID is not set, it is because
    the target is not doing tagged queueing.  In those cases, trying to
    send a Head of Queue tag may cause problems.  Instead, default to
    sending a simple tag.
  
    IBM tape drives claim to support tagged queueing in their standard
    Inquiry data, but have the DQue bit set in the control mode page
    (mode page 10).  CAM correctly detects that these drives do not
    support tagged queueing, and clears the CAM_TAG_ACTION_VALID flag
    on CCBs sent down to the drives.
  
    This caused the isp(4) driver to go down the path of setting the
    tag action to a default value, and for Request Sense commands only,
    set the tag action to Head of Queue.
  
    If an IBM tape drive does get a Head of Queue tag, it rejects it with
    Invalid Message Error (0x49,0x00).  (The Qlogic firmware translates that
    to a Transport Error, which the driver translates to an Unrecoverable
    HBA Error, or CAM_UNREC_HBA_ERROR.) So, by default, it wasn't possible
    to get a good response from a REQUEST SENSE to an FC-attached IBM
    tape drive with the isp(4) driver.
  
    IBM tape drives (tested on an LTO-5 with G9N1 firmware and a TS1150
    with 4470 firmware) also have a bug in that sending a command with a
    non-simple tag attribute breaks the tape drive's Command Reference
    Number (CRN) accounting and causes it to ignore all subsequent
    commands because it and the initiator disagree about the next
    expected CRN.  The drives do reject the initial command with a head
    of queue tag with an Invalid Message Error (0x49,0x00), but after that
    they ignore any subsequent commands.  IBM confirmed that it is a bug,
    and sent me test firmware that fixes the bug.  However tape drives in
    the field will still exhibit the bug until they are upgraded.
  
    Request Sense is not often sent to targets because most errors are
    reported automatically through autosense in Fibre Channel and other
    modern transports.  ("Modern" meaning post SCSI-2.)  So this is not
    an error that would crop up frequently.  But Request Sense is useful on
    tape devices to report status information, aside from error reporting.
  
    This problem is less serious without FC-Tape features turned on,
    specifically precise delivery of commands (which enables Command
    Reference Numbers), enabled on the target and initiator.  Without
    FC-Tape features turned on, the target would return an error and
    things would continue on.
  
    And it also does not cause problems for targets that do tagged
    queueing, because in those cases the isp(4) driver just uses the
    tag type that is specified in the CCB, assuming the
    CAM_TAG_ACTION_VALID flag is set, and defaults to sending a Simple
    tag action if it isn't an ordered or head of queue tag.
  
    sys/dev/isp/isp.c:
    	In isp_start(), don't try to send Request Sense commands
    	with the Head of Queue tag attribute if the CCB doesn't
    	have a valid tag action.  The tag action likely isn't valid
    	because the target doesn't support tagged queueing.
  
    Sponsored by:	Spectra Logic
  
    ------------------------------------------------------------------------

Modified:
  stable/10/sys/dev/isp/isp.c

Modified: stable/10/sys/dev/isp/isp.c
==============================================================================
--- stable/10/sys/dev/isp/isp.c	Mon Feb 13 16:06:38 2017	(r313699)
+++ stable/10/sys/dev/isp/isp.c	Mon Feb 13 16:11:37 2017	(r313700)
@@ -4451,11 +4451,7 @@ isp_start(XS_T *xs)
 		if (XS_TAG_P(xs)) {
 			ttype = XS_TAG_TYPE(xs);
 		} else {
-			if (XS_CDBP(xs)[0] == 0x3) {
-				ttype = REQFLAG_HTAG;
-			} else {
-				ttype = REQFLAG_STAG;
-			}
+			ttype = REQFLAG_STAG;
 		}
 		if (ttype == REQFLAG_OTAG) {
 			ttype = FCP_CMND_TASK_ATTR_ORDERED;
@@ -4479,14 +4475,7 @@ isp_start(XS_T *xs)
 		if (XS_TAG_P(xs)) {
 			((ispreqt2_t *)reqp)->req_flags = XS_TAG_TYPE(xs);
 		} else {
-			/*
-			 * If we don't know what tag to use, use HEAD OF QUEUE
-			 * for Request Sense or Simple.
-			 */
-			if (XS_CDBP(xs)[0] == 0x3)	/* REQUEST SENSE */
-				((ispreqt2_t *)reqp)->req_flags = REQFLAG_HTAG;
-			else
-				((ispreqt2_t *)reqp)->req_flags = REQFLAG_STAG;
+			((ispreqt2_t *)reqp)->req_flags = REQFLAG_STAG;
 		}
 	} else {
 		sdparam *sdp = SDPARAM(isp, XS_CHANNEL(xs));

From owner-svn-src-stable@freebsd.org  Mon Feb 13 18:39:23 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70558CDDCCE;
 Mon, 13 Feb 2017 18:39:23 +0000 (UTC) (envelope-from dim@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 mx1.freebsd.org (Postfix) with ESMTPS id 2E6711506;
 Mon, 13 Feb 2017 18:39:23 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1DIdMre085134;
 Mon, 13 Feb 2017 18:39:22 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1DIdL8M085130;
 Mon, 13 Feb 2017 18:39:21 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702131839.v1DIdL8M085130@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Mon, 13 Feb 2017 18:39:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313702 - in stable/11/contrib/compiler-rt/lib: asan lsan
 sanitizer_common
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 18:39:23 -0000

Author: dim
Date: Mon Feb 13 18:39:21 2017
New Revision: 313702
URL: https://svnweb.freebsd.org/changeset/base/313702

Log:
  MFC r313052:
  
  Pull in r293536 from upstream compiler-rt trunk:
  
    Recommit: Stop intercepting some malloc-related functions on FreeBSD
    and macOS
  
    Summary:
    In https://bugs.freebsd.org/215125 I was notified that some configure
    scripts attempt to test for the Linux-specific `mallinfo` and
    `mallopt` functions by compiling and linking small programs which
    references the functions, and observing whether that results in
    errors.
  
    FreeBSD and macOS do not have the `mallinfo` and `mallopt` functions,
    so normally these tests would fail, but when sanitizers are enabled,
    they incorrectly succeed, because the sanitizers define interceptors
    for these functions.  This also applies to some other malloc-related
    functions, such as `memalign`, `pvalloc` and `cfree`.
  
    Fix this by not intercepting `mallinfo`, `mallopt`, `memalign`,
    `pvalloc` and `cfree` for FreeBSD and macOS, in all sanitizers.
  
    Also delete the non-functional `cfree` wrapper for Windows, to fix the
    test cases on that platform.
  
    Reviewers: emaste, kcc, rnk
  
    Subscribers: timurrrr, eugenis, hans, joerg, llvm-commits, kubamracek
  
    Differential Revision: https://reviews.llvm.org/D27654
  
  This prevents autoconf scripts from incorrectly detecting that functions
  like mallinfo, mallopt, memalign, pvalloc and cfree are supported.
  
  PR:		215125, 215455

Modified:
  stable/11/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_malloc_win.cc
  stable/11/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc	Mon Feb 13 17:44:07 2017	(r313701)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc	Mon Feb 13 18:39:21 2017	(r313702)
@@ -50,12 +50,14 @@ INTERCEPTOR(void, free, void *ptr) {
   asan_free(ptr, &stack, FROM_MALLOC);
 }
 
+#if SANITIZER_INTERCEPT_CFREE
 INTERCEPTOR(void, cfree, void *ptr) {
   GET_STACK_TRACE_FREE;
   if (UNLIKELY(IsInDlsymAllocPool(ptr)))
     return;
   asan_free(ptr, &stack, FROM_MALLOC);
 }
+#endif // SANITIZER_INTERCEPT_CFREE
 
 INTERCEPTOR(void*, malloc, uptr size) {
   if (UNLIKELY(!asan_inited))
@@ -85,22 +87,24 @@ INTERCEPTOR(void*, realloc, void *ptr, u
   return asan_realloc(ptr, size, &stack);
 }
 
+#if SANITIZER_INTERCEPT_MEMALIGN
 INTERCEPTOR(void*, memalign, uptr boundary, uptr size) {
   GET_STACK_TRACE_MALLOC;
   return asan_memalign(boundary, size, &stack, FROM_MALLOC);
 }
 
-INTERCEPTOR(void*, aligned_alloc, uptr boundary, uptr size) {
-  GET_STACK_TRACE_MALLOC;
-  return asan_memalign(boundary, size, &stack, FROM_MALLOC);
-}
-
 INTERCEPTOR(void*, __libc_memalign, uptr boundary, uptr size) {
   GET_STACK_TRACE_MALLOC;
   void *res = asan_memalign(boundary, size, &stack, FROM_MALLOC);
   DTLS_on_libc_memalign(res, size);
   return res;
 }
+#endif // SANITIZER_INTERCEPT_MEMALIGN
+
+INTERCEPTOR(void*, aligned_alloc, uptr boundary, uptr size) {
+  GET_STACK_TRACE_MALLOC;
+  return asan_memalign(boundary, size, &stack, FROM_MALLOC);
+}
 
 INTERCEPTOR(uptr, malloc_usable_size, void *ptr) {
   GET_CURRENT_PC_BP_SP;
@@ -108,6 +112,7 @@ INTERCEPTOR(uptr, malloc_usable_size, vo
   return asan_malloc_usable_size(ptr, pc, bp);
 }
 
+#if SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO
 // We avoid including malloc.h for portability reasons.
 // man mallinfo says the fields are "long", but the implementation uses int.
 // It doesn't matter much -- we just need to make sure that the libc's mallinfo
@@ -125,6 +130,7 @@ INTERCEPTOR(struct fake_mallinfo, mallin
 INTERCEPTOR(int, mallopt, int cmd, int value) {
   return -1;
 }
+#endif // SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO
 
 INTERCEPTOR(int, posix_memalign, void **memptr, uptr alignment, uptr size) {
   GET_STACK_TRACE_MALLOC;
@@ -137,10 +143,12 @@ INTERCEPTOR(void*, valloc, uptr size) {
   return asan_valloc(size, &stack);
 }
 
+#if SANITIZER_INTERCEPT_PVALLOC
 INTERCEPTOR(void*, pvalloc, uptr size) {
   GET_STACK_TRACE_MALLOC;
   return asan_pvalloc(size, &stack);
 }
+#endif // SANITIZER_INTERCEPT_PVALLOC
 
 INTERCEPTOR(void, malloc_stats, void) {
   __asan_print_accumulated_stats();

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_malloc_win.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_malloc_win.cc	Mon Feb 13 17:44:07 2017	(r313701)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_malloc_win.cc	Mon Feb 13 18:39:21 2017	(r313702)
@@ -56,11 +56,6 @@ void _free_base(void *ptr) {
 }
 
 ALLOCATION_FUNCTION_ATTRIBUTE
-void cfree(void *ptr) {
-  CHECK(!"cfree() should not be used on Windows");
-}
-
-ALLOCATION_FUNCTION_ATTRIBUTE
 void *malloc(size_t size) {
   GET_STACK_TRACE_MALLOC;
   return asan_malloc(size, &stack);

Modified: stable/11/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Mon Feb 13 17:44:07 2017	(r313701)
+++ stable/11/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Mon Feb 13 18:39:21 2017	(r313702)
@@ -19,6 +19,7 @@
 #include "sanitizer_common/sanitizer_flags.h"
 #include "sanitizer_common/sanitizer_internal_defs.h"
 #include "sanitizer_common/sanitizer_linux.h"
+#include "sanitizer_common/sanitizer_platform_interceptors.h"
 #include "sanitizer_common/sanitizer_platform_limits_posix.h"
 #include "sanitizer_common/sanitizer_tls_get_addr.h"
 #include "lsan.h"
@@ -86,11 +87,26 @@ INTERCEPTOR(void*, realloc, void *q, upt
   return Reallocate(stack, q, size, 1);
 }
 
+#if SANITIZER_INTERCEPT_MEMALIGN
 INTERCEPTOR(void*, memalign, uptr alignment, uptr size) {
   ENSURE_LSAN_INITED;
   GET_STACK_TRACE_MALLOC;
   return Allocate(stack, size, alignment, kAlwaysClearMemory);
 }
+#define LSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign)
+
+INTERCEPTOR(void *, __libc_memalign, uptr alignment, uptr size) {
+  ENSURE_LSAN_INITED;
+  GET_STACK_TRACE_MALLOC;
+  void *res = Allocate(stack, size, alignment, kAlwaysClearMemory);
+  DTLS_on_libc_memalign(res, size);
+  return res;
+}
+#define LSAN_MAYBE_INTERCEPT___LIBC_MEMALIGN INTERCEPT_FUNCTION(__libc_memalign)
+#else
+#define LSAN_MAYBE_INTERCEPT_MEMALIGN
+#define LSAN_MAYBE_INTERCEPT___LIBC_MEMALIGN
+#endif // SANITIZER_INTERCEPT_MEMALIGN
 
 INTERCEPTOR(void*, aligned_alloc, uptr alignment, uptr size) {
   ENSURE_LSAN_INITED;
@@ -106,14 +122,6 @@ INTERCEPTOR(int, posix_memalign, void **
   return 0;
 }
 
-INTERCEPTOR(void *, __libc_memalign, uptr alignment, uptr size) {
-  ENSURE_LSAN_INITED;
-  GET_STACK_TRACE_MALLOC;
-  void *res = Allocate(stack, size, alignment, kAlwaysClearMemory);
-  DTLS_on_libc_memalign(res, size);
-  return res;
-}
-
 INTERCEPTOR(void*, valloc, uptr size) {
   ENSURE_LSAN_INITED;
   GET_STACK_TRACE_MALLOC;
@@ -127,6 +135,7 @@ INTERCEPTOR(uptr, malloc_usable_size, vo
   return GetMallocUsableSize(ptr);
 }
 
+#if SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO
 struct fake_mallinfo {
   int x[10];
 };
@@ -136,11 +145,18 @@ INTERCEPTOR(struct fake_mallinfo, mallin
   internal_memset(&res, 0, sizeof(res));
   return res;
 }
+#define LSAN_MAYBE_INTERCEPT_MALLINFO INTERCEPT_FUNCTION(mallinfo)
 
 INTERCEPTOR(int, mallopt, int cmd, int value) {
   return -1;
 }
+#define LSAN_MAYBE_INTERCEPT_MALLOPT INTERCEPT_FUNCTION(mallopt)
+#else
+#define LSAN_MAYBE_INTERCEPT_MALLINFO
+#define LSAN_MAYBE_INTERCEPT_MALLOPT
+#endif // SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO
 
+#if SANITIZER_INTERCEPT_PVALLOC
 INTERCEPTOR(void*, pvalloc, uptr size) {
   ENSURE_LSAN_INITED;
   GET_STACK_TRACE_MALLOC;
@@ -152,8 +168,17 @@ INTERCEPTOR(void*, pvalloc, uptr size) {
   }
   return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory);
 }
+#define LSAN_MAYBE_INTERCEPT_PVALLOC INTERCEPT_FUNCTION(pvalloc)
+#else
+#define LSAN_MAYBE_INTERCEPT_PVALLOC
+#endif // SANITIZER_INTERCEPT_PVALLOC
 
+#if SANITIZER_INTERCEPT_CFREE
 INTERCEPTOR(void, cfree, void *p) ALIAS(WRAPPER_NAME(free));
+#define LSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree)
+#else
+#define LSAN_MAYBE_INTERCEPT_CFREE
+#endif // SANITIZER_INTERCEPT_CFREE
 
 #define OPERATOR_NEW_BODY                              \
   ENSURE_LSAN_INITED;                                  \
@@ -277,17 +302,18 @@ namespace __lsan {
 void InitializeInterceptors() {
   INTERCEPT_FUNCTION(malloc);
   INTERCEPT_FUNCTION(free);
-  INTERCEPT_FUNCTION(cfree);
+  LSAN_MAYBE_INTERCEPT_CFREE;
   INTERCEPT_FUNCTION(calloc);
   INTERCEPT_FUNCTION(realloc);
-  INTERCEPT_FUNCTION(memalign);
+  LSAN_MAYBE_INTERCEPT_MEMALIGN;
+  LSAN_MAYBE_INTERCEPT___LIBC_MEMALIGN;
+  INTERCEPT_FUNCTION(aligned_alloc);
   INTERCEPT_FUNCTION(posix_memalign);
-  INTERCEPT_FUNCTION(__libc_memalign);
   INTERCEPT_FUNCTION(valloc);
-  INTERCEPT_FUNCTION(pvalloc);
+  LSAN_MAYBE_INTERCEPT_PVALLOC;
   INTERCEPT_FUNCTION(malloc_usable_size);
-  INTERCEPT_FUNCTION(mallinfo);
-  INTERCEPT_FUNCTION(mallopt);
+  LSAN_MAYBE_INTERCEPT_MALLINFO;
+  LSAN_MAYBE_INTERCEPT_MALLOPT;
   INTERCEPT_FUNCTION(pthread_create);
   INTERCEPT_FUNCTION(pthread_join);
 

Modified: stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
==============================================================================
--- stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h	Mon Feb 13 17:44:07 2017	(r313701)
+++ stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h	Mon Feb 13 18:39:21 2017	(r313702)
@@ -318,4 +318,10 @@
 #define SANITIZER_INTERCEPT___XSTAT64 SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT___LXSTAT SANITIZER_INTERCEPT___XSTAT
 #define SANITIZER_INTERCEPT___LXSTAT64 SI_LINUX_NOT_ANDROID
+
+#define SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO (!SI_FREEBSD && !SI_MAC)
+#define SANITIZER_INTERCEPT_MEMALIGN (!SI_FREEBSD && !SI_MAC)
+#define SANITIZER_INTERCEPT_PVALLOC (!SI_FREEBSD && !SI_MAC)
+#define SANITIZER_INTERCEPT_CFREE (!SI_FREEBSD && !SI_MAC)
+
 #endif  // #ifndef SANITIZER_PLATFORM_INTERCEPTORS_H

From owner-svn-src-stable@freebsd.org  Mon Feb 13 19:27:52 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFF37CDDBC3;
 Mon, 13 Feb 2017 19:27:52 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: from mail-qk0-x244.google.com (mail-qk0-x244.google.com
 [IPv6:2607:f8b0:400d:c09::244])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6C9D9DEB;
 Mon, 13 Feb 2017 19:27:52 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: by mail-qk0-x244.google.com with SMTP id e1so16333798qkh.1;
 Mon, 13 Feb 2017 11:27:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=WIL88ibV6n+GPJj2AVdVemh6ttknSuyItS95uF8icX8=;
 b=ndOvkhNfH//duaXnAyHHSM3/XczS6yVP36HBUmxXhNIdo+t5NzmbDD8a+jFKJWXm6P
 aTyK6zI/SQcmW7lw+e1R7n2E+JzFj/oNCHUhIUWw1YGLt8HFrRRotdNMAD3kHn5qZ0RG
 BAS5l+0a4rQIIMet5qWdJx8YE5iMsIZ18gwukEdd1aEAiq/DJGFCcSak4wpFKj2qDS2/
 HVoXCno5mJDbdi9lcSanAqgnoZo/akaO9+eY0hjQQnssmb+CQVPU9CfIpF8i4L41r5Cr
 f1hBj3jEIXMLaNnenrtLOpBUQNERxjVWSr2/kDS+HyGt67kvHw2M/pado8mgujhce7VZ
 EAlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=WIL88ibV6n+GPJj2AVdVemh6ttknSuyItS95uF8icX8=;
 b=o6SS7sQBwpRIrUehhm4YA8e5vN07M0m2xSNqnQiRHG7E3LoAXkk76auw1cJlCVrdkV
 WMa3ShsSeJ80wQeUhjI5ZPk2DMl77N2iGfLbttv2rsJmVKIyA84hMPFa1F0fvxk5DN9P
 PZp8m6ZL+wUYN2zRxehu9JSftT8ikW6gkvdzYAlanl/5G3aDEN4naByfTEwEXXEA6Iyz
 6Tw6ulu9Jg+4E3AB+dhYWGGVcNFTML8DWMZKQBzoA9yA20ndxAb3J4ceYe5skGYH7VW0
 6bL1C3+ox8eDIlhKCQDzFfMUFvpMOpv0S1Inq5rxvSYHRWtjBuzVb7jnoC7Ay3YYrd9R
 zgwg==
X-Gm-Message-State: AMke39naH51XRQHbC2emgurjEeRbcd4C3YHkDGTDF5+oXXAauy+5nRBBC8KTKrvdp6EyIYp1FGVDivd0pEKLhA==
X-Received: by 10.55.22.74 with SMTP id g71mr7724032qkh.40.1487014071600; Mon,
 13 Feb 2017 11:27:51 -0800 (PST)
MIME-Version: 1.0
Received: by 10.140.84.230 with HTTP; Mon, 13 Feb 2017 11:27:51 -0800 (PST)
In-Reply-To: <CABh_MKmYuP-Yb3VLJ3EOb1dODtHmN8uoSuytTrjTQm=C9iwuMw@mail.gmail.com>
References: <201702110735.v1B7ZROH028648@repo.freebsd.org>
 <CABh_MKmYuP-Yb3VLJ3EOb1dODtHmN8uoSuytTrjTQm=C9iwuMw@mail.gmail.com>
From: Ngie Cooper <yaneurabeya@gmail.com>
Date: Mon, 13 Feb 2017 11:27:51 -0800
Message-ID: <CAGHfRMBNpAfuUfQU4jZexZH+XD89sJszecJKVnEe0_K=RV85SA@mail.gmail.com>
Subject: Re: svn commit: r313632 - in
 stable/10/contrib/netbsd-tests/lib/libc/gen: . posix_spawn
To: Ed Schouten <ed@nuxi.nl>
Cc: src-committers <src-committers@freebsd.org>, 
 "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, 
 "svn-src-stable@freebsd.org" <svn-src-stable@freebsd.org>, 
 "svn-src-stable-10@freebsd.org" <svn-src-stable-10@freebsd.org>
Content-Type: text/plain; charset=UTF-8
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Feb 2017 19:27:52 -0000

On Sat, Feb 11, 2017 at 1:12 AM, Ed Schouten <ed@nuxi.nl> wrote:
> 2017-02-11 8:35 GMT+01:00 Ngie Cooper <ngie@freebsd.org>:
>>   Note that sys/types.h is required on FreeBSD for kqueue(2), unlike NetBSD
>
> Which is a bug on its own in my opinion. What do you think of this patch?

I don't mind the intent of your proposed change.. it's just that it's
documented as necessary already in the manpage... so *meh*.

I've hacked around this in libnetbsd, so I'm not sure if it makes
sense to deviate from previous behavior. I was just backporting this
change because it diff reduces with what I introduced later.

Thanks!
-Ngie

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:38:38 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64ACFCDD66B;
 Tue, 14 Feb 2017 04:38:38 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 33D2A1302;
 Tue, 14 Feb 2017 04:38:38 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4cbpN033400;
 Tue, 14 Feb 2017 04:38:37 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4cb6A033399;
 Tue, 14 Feb 2017 04:38:37 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140438.v1E4cb6A033399@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:38:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313716 - stable/10/usr.sbin/syslogd
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:38:38 -0000

Author: ngie
Date: Tue Feb 14 04:38:37 2017
New Revision: 313716
URL: https://svnweb.freebsd.org/changeset/base/313716

Log:
  MFC r313358,r313360:
  
  r313358:
  
  Sort sys/ #includes and zap an unnecessary trailing space nearby
  
  r313360:
  
  Sort sys/ #includes some more

Modified:
  stable/10/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/10/usr.sbin/syslogd/syslogd.c	Tue Feb 14 03:32:37 2017	(r313715)
+++ stable/10/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:38:37 2017	(r313716)
@@ -79,15 +79,15 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/socket.h>
 #include <sys/queue.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <sys/time.h>
 #include <sys/resource.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
 #include <sys/syslimits.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/wait.h>
 #include <sys/types.h>
 
 #include <netinet/in.h>

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:38:40 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E82E1CDD6A1;
 Tue, 14 Feb 2017 04:38:40 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id B78F91307;
 Tue, 14 Feb 2017 04:38:40 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4cdin033449;
 Tue, 14 Feb 2017 04:38:39 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4cdNC033448;
 Tue, 14 Feb 2017 04:38:39 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140438.v1E4cdNC033448@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:38:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313717 - stable/11/usr.sbin/syslogd
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:38:41 -0000

Author: ngie
Date: Tue Feb 14 04:38:39 2017
New Revision: 313717
URL: https://svnweb.freebsd.org/changeset/base/313717

Log:
  MFC r313358,r313360:
  
  r313358:
  
  Sort sys/ #includes and zap an unnecessary trailing space nearby
  
  r313360:
  
  Sort sys/ #includes some more

Modified:
  stable/11/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/11/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:38:37 2017	(r313716)
+++ stable/11/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:38:39 2017	(r313717)
@@ -79,15 +79,15 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/socket.h>
 #include <sys/queue.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <sys/time.h>
 #include <sys/resource.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
 #include <sys/syslimits.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/wait.h>
 #include <sys/types.h>
 
 #include <netinet/in.h>

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:42:48 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8C205CDD9B2;
 Tue, 14 Feb 2017 04:42:48 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 5B39418EA;
 Tue, 14 Feb 2017 04:42:48 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4glm6037234;
 Tue, 14 Feb 2017 04:42:47 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4gloZ037233;
 Tue, 14 Feb 2017 04:42:47 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140442.v1E4gloZ037233@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:42:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313718 - stable/10/contrib/netbsd-tests/lib/libc/gen
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:42:48 -0000

Author: ngie
Date: Tue Feb 14 04:42:47 2017
New Revision: 313718
URL: https://svnweb.freebsd.org/changeset/base/313718

Log:
  MFC r313377:
  
  Expect :floatunditf to fail on FreeBSD/i386
  
  The precision error on FreeBSD/i386 doesn't match the expected output in
  long double form.

Modified:
  stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
==============================================================================
--- stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb 14 04:38:39 2017	(r313717)
+++ stable/10/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb 14 04:42:47 2017	(r313718)
@@ -119,6 +119,11 @@ ATF_TC_BODY(floatunditf, tc)
 #else
 	size_t i;
 
+#if defined(__FreeBSD__) && defined(__i386__)
+	atf_tc_expect_fail("the floating point error on FreeBSD/i386 doesn't "
+	    "match the expected floating point error on NetBSD");
+#endif
+
 	for (i = 0; i < __arraycount(testcases); ++i)
 		ATF_CHECK_MSG(
 		    testcases[i].ld == (long double)testcases[i].u64,

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:43:04 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87199CDDA9D;
 Tue, 14 Feb 2017 04:43:04 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 564911A0F;
 Tue, 14 Feb 2017 04:43:04 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4h3CG037301;
 Tue, 14 Feb 2017 04:43:03 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4h35b037300;
 Tue, 14 Feb 2017 04:43:03 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140443.v1E4h35b037300@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:43:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313719 - stable/11/contrib/netbsd-tests/lib/libc/gen
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:43:04 -0000

Author: ngie
Date: Tue Feb 14 04:43:03 2017
New Revision: 313719
URL: https://svnweb.freebsd.org/changeset/base/313719

Log:
  MFC r313377:
  
  Expect :floatunditf to fail on FreeBSD/i386
  
  The precision error on FreeBSD/i386 doesn't match the expected output in
  long double form.

Modified:
  stable/11/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c
==============================================================================
--- stable/11/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb 14 04:42:47 2017	(r313718)
+++ stable/11/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c	Tue Feb 14 04:43:03 2017	(r313719)
@@ -119,6 +119,11 @@ ATF_TC_BODY(floatunditf, tc)
 #else
 	size_t i;
 
+#if defined(__FreeBSD__) && defined(__i386__)
+	atf_tc_expect_fail("the floating point error on FreeBSD/i386 doesn't "
+	    "match the expected floating point error on NetBSD");
+#endif
+
 	for (i = 0; i < __arraycount(testcases); ++i)
 		ATF_CHECK_MSG(
 		    testcases[i].ld == (long double)testcases[i].u64,

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:46:21 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 276DACDDC5D;
 Tue, 14 Feb 2017 04:46:21 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id CFA041C36;
 Tue, 14 Feb 2017 04:46:20 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4kJvS037560;
 Tue, 14 Feb 2017 04:46:19 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4kJPH037559;
 Tue, 14 Feb 2017 04:46:19 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140446.v1E4kJPH037559@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:46:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313720 - stable/10/lib/libc/tests/stdio
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:46:21 -0000

Author: ngie
Date: Tue Feb 14 04:46:19 2017
New Revision: 313720
URL: https://svnweb.freebsd.org/changeset/base/313720

Log:
  MFC r313376:
  
  Fix :hexadecimal_floating_point on i386
  
  Don't exclude i386 from LDBL_MANT_DIG == 64; it works properly in
  that case.
  
  While here, replace strcmp + atf_tc_fail with ATF_CHECK_MSG for 2
  reasons:
  - Gather as many results as possible instead of failing early and
    not testing the rest of the cases.
  - Simplify logic when checking test inputs vs outputs and printing
    test result.
  
  Tested on:	amd64, i386

Modified:
  stable/10/lib/libc/tests/stdio/printfloat_test.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/tests/stdio/printfloat_test.c
==============================================================================
--- stable/10/lib/libc/tests/stdio/printfloat_test.c	Tue Feb 14 04:43:03 2017	(r313719)
+++ stable/10/lib/libc/tests/stdio/printfloat_test.c	Tue Feb 14 04:46:19 2017	(r313720)
@@ -70,22 +70,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -318,7 +315,7 @@ ATF_TC_BODY(hexadecimal_floating_point, 
 	testfmt("0x1p-1074", "%a", 0x1p-1074);
 	testfmt("0x1.2345p-1024", "%a", 0x1.2345p-1024);
 
-#if (LDBL_MANT_DIG == 64) && !defined(__i386__)
+#if (LDBL_MANT_DIG == 64)
 	testfmt("0x1.921fb54442d18468p+1", "%La", 0x3.243f6a8885a308dp0L);
 	testfmt("0x1p-16445", "%La", 0x1p-16445L);
 	testfmt("0x1.30ecap-16381", "%La", 0x9.8765p-16384L);

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:47:15 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D15ECDDD11;
 Tue, 14 Feb 2017 04:47:15 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id B3F491D80;
 Tue, 14 Feb 2017 04:47:14 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4lDN2037652;
 Tue, 14 Feb 2017 04:47:13 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4lD7c037651;
 Tue, 14 Feb 2017 04:47:13 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140447.v1E4lD7c037651@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:47:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313721 - stable/11/lib/libc/tests/stdio
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:47:15 -0000

Author: ngie
Date: Tue Feb 14 04:47:13 2017
New Revision: 313721
URL: https://svnweb.freebsd.org/changeset/base/313721

Log:
  MFC r313376:
  
  Fix :hexadecimal_floating_point on i386
  
  Don't exclude i386 from LDBL_MANT_DIG == 64; it works properly in
  that case.
  
  While here, replace strcmp + atf_tc_fail with ATF_CHECK_MSG for 2
  reasons:
  - Gather as many results as possible instead of failing early and
    not testing the rest of the cases.
  - Simplify logic when checking test inputs vs outputs and printing
    test result.
  
  Tested on:	amd64, i386

Modified:
  stable/11/lib/libc/tests/stdio/printfloat_test.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/tests/stdio/printfloat_test.c
==============================================================================
--- stable/11/lib/libc/tests/stdio/printfloat_test.c	Tue Feb 14 04:46:19 2017	(r313720)
+++ stable/11/lib/libc/tests/stdio/printfloat_test.c	Tue Feb 14 04:47:13 2017	(r313721)
@@ -70,22 +70,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -318,7 +315,7 @@ ATF_TC_BODY(hexadecimal_floating_point, 
 	testfmt("0x1p-1074", "%a", 0x1p-1074);
 	testfmt("0x1.2345p-1024", "%a", 0x1.2345p-1024);
 
-#if (LDBL_MANT_DIG == 64) && !defined(__i386__)
+#if (LDBL_MANT_DIG == 64)
 	testfmt("0x1.921fb54442d18468p+1", "%La", 0x3.243f6a8885a308dp0L);
 	testfmt("0x1p-16445", "%La", 0x1p-16445L);
 	testfmt("0x1.30ecap-16381", "%La", 0x9.8765p-16384L);

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:49:08 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F90ACDDE23;
 Tue, 14 Feb 2017 04:49:08 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 14D1E1EE3;
 Tue, 14 Feb 2017 04:49:08 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4n74h037842;
 Tue, 14 Feb 2017 04:49:07 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4n7fs037841;
 Tue, 14 Feb 2017 04:49:07 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140449.v1E4n7fs037841@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:49:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313722 - stable/11/lib/libc/tests/stdio
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:49:08 -0000

Author: ngie
Date: Tue Feb 14 04:49:06 2017
New Revision: 313722
URL: https://svnweb.freebsd.org/changeset/base/313722

Log:
  MFC r313378,r313379:
  
  r313378:
  
  Wrap strcmp/wcscmp calls with ATF_CHECK_MSG and drop atf_tc_fail use
  
  The reasoning here was the same as what was done in r313376:
  - Gather as many results as possible instead of failing early and
    not testing the rest of the cases.
  - Simplify logic when checking test inputs vs outputs and printing
    test result.
  
  r313379:
  
  Expect :int_within_limits to fail when ptrdiff_t/*intmax_t differ in base type
  
  The %t{d,u} (ptrdiff_t) tests fail for the following reasons:
  - ptrdiff_t is by definition int32_t on !LP64 architectures and int64_t on
    LP64 architectures.
  - intmax_t is by definition fixed to int64_t on all architectures.
  - Some of the code in lib/libc/stdio/... is promoting ptrdiff_t to *intmax_t
    when parsing/representing the value.
  
  PR:		191674

Modified:
  stable/11/lib/libc/tests/stdio/printbasic_test.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/tests/stdio/printbasic_test.c
==============================================================================
--- stable/11/lib/libc/tests/stdio/printbasic_test.c	Tue Feb 14 04:47:13 2017	(r313721)
+++ stable/11/lib/libc/tests/stdio/printbasic_test.c	Tue Feb 14 04:49:06 2017	(r313722)
@@ -78,22 +78,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -114,6 +111,11 @@ ATF_TC_BODY(int_within_limits, tc)
 	testfmt("-1", "%jd", (intmax_t)-1);
 	testfmt(S_UINT64MAX, "%ju", UINT64_MAX);
 
+	if (sizeof(ptrdiff_t) != sizeof(uintmax_t))
+		atf_tc_expect_fail("the %%t qualifier is broken on 32-bit "
+		    "platforms where there's a mismatch between ptrdiff_t and "
+		    "uintmax_t's type width; bug # 191674");
+
 	testfmt("-1", "%td", (ptrdiff_t)-1);
 	testfmt(S_SIZEMAX, "%tu", (size_t)-1);
 

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:49:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B17C4CDDE9D;
 Tue, 14 Feb 2017 04:49:25 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 66B411011;
 Tue, 14 Feb 2017 04:49:25 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4nO4m037914;
 Tue, 14 Feb 2017 04:49:24 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4nOM0037913;
 Tue, 14 Feb 2017 04:49:24 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140449.v1E4nOM0037913@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:49:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313723 - stable/10/lib/libc/tests/stdio
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:49:25 -0000

Author: ngie
Date: Tue Feb 14 04:49:24 2017
New Revision: 313723
URL: https://svnweb.freebsd.org/changeset/base/313723

Log:
  MFC r313378,r313379:
  
  r313378:
  
  Wrap strcmp/wcscmp calls with ATF_CHECK_MSG and drop atf_tc_fail use
  
  The reasoning here was the same as what was done in r313376:
  - Gather as many results as possible instead of failing early and
    not testing the rest of the cases.
  - Simplify logic when checking test inputs vs outputs and printing
    test result.
  
  r313379:
  
  Expect :int_within_limits to fail when ptrdiff_t/*intmax_t differ in base type
  
  The %t{d,u} (ptrdiff_t) tests fail for the following reasons:
  - ptrdiff_t is by definition int32_t on !LP64 architectures and int64_t on
    LP64 architectures.
  - intmax_t is by definition fixed to int64_t on all architectures.
  - Some of the code in lib/libc/stdio/... is promoting ptrdiff_t to *intmax_t
    when parsing/representing the value.
  
  PR:		191674

Modified:
  stable/10/lib/libc/tests/stdio/printbasic_test.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/tests/stdio/printbasic_test.c
==============================================================================
--- stable/10/lib/libc/tests/stdio/printbasic_test.c	Tue Feb 14 04:49:06 2017	(r313722)
+++ stable/10/lib/libc/tests/stdio/printbasic_test.c	Tue Feb 14 04:49:24 2017	(r313723)
@@ -78,22 +78,19 @@ _testfmt(const char *result, const char 
 	va_copy(ap2, ap);
 	smash_stack();
 	vsnprintf(s, sizeof(s), fmt, ap);
-	if (strcmp(result, s) != 0) {
-		atf_tc_fail(
-		    "printf(\"%s\", %s) ==> [%s], expected [%s]",
-		    fmt, argstr, s, result);
-	}
+	ATF_CHECK_MSG(strcmp(result, s) == 0,
+	    "printf(\"%s\", %s) ==> [%s], expected [%s]",
+	    fmt, argstr, s, result);
 
 	smash_stack();
 	mbstowcs(ws, s, BUF - 1);
 	mbstowcs(wfmt, fmt, BUF - 1);
 	mbstowcs(wresult, result, BUF - 1);
 	vswprintf(ws, sizeof(ws) / sizeof(ws[0]), wfmt, ap2);
-	if (wcscmp(wresult, ws) != 0) {
-		atf_tc_fail(
-		    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
-		    wfmt, argstr, ws, wresult);
-	}
+	ATF_CHECK_MSG(wcscmp(wresult, ws) == 0,
+	    "wprintf(\"%ls\", %s) ==> [%ls], expected [%ls]",
+	    wfmt, argstr, ws, wresult);
+
 	va_end(ap);
 	va_end(ap2);
 }
@@ -114,6 +111,11 @@ ATF_TC_BODY(int_within_limits, tc)
 	testfmt("-1", "%jd", (intmax_t)-1);
 	testfmt(S_UINT64MAX, "%ju", UINT64_MAX);
 
+	if (sizeof(ptrdiff_t) != sizeof(uintmax_t))
+		atf_tc_expect_fail("the %%t qualifier is broken on 32-bit "
+		    "platforms where there's a mismatch between ptrdiff_t and "
+		    "uintmax_t's type width; bug # 191674");
+
 	testfmt("-1", "%td", (ptrdiff_t)-1);
 	testfmt(S_SIZEMAX, "%tu", (size_t)-1);
 

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:51:23 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08ECECDE12D;
 Tue, 14 Feb 2017 04:51:23 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id C83F71470;
 Tue, 14 Feb 2017 04:51:22 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4pL2v038844;
 Tue, 14 Feb 2017 04:51:21 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4pLt3038843;
 Tue, 14 Feb 2017 04:51:21 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140451.v1E4pLt3038843@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:51:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313724 - stable/11/lib/libc/stdlib
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:51:23 -0000

Author: ngie
Date: Tue Feb 14 04:51:21 2017
New Revision: 313724
URL: https://svnweb.freebsd.org/changeset/base/313724

Log:
  MFC r313374:
  
  hcreate(3): fix the ERRORS section and bump .Dd
  
  - Add missing comma between functions that trigger ENOMEM error.
  - Fix the description for ESRCH. The action that triggers this error is
    FIND, not SEARCH (SEARCH does not exist).

Modified:
  stable/11/lib/libc/stdlib/hcreate.3
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/stdlib/hcreate.3
==============================================================================
--- stable/11/lib/libc/stdlib/hcreate.3	Tue Feb 14 04:49:24 2017	(r313723)
+++ stable/11/lib/libc/stdlib/hcreate.3	Tue Feb 14 04:51:21 2017	(r313724)
@@ -28,7 +28,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 26, 2015
+.Dd February 6, 2017
 .Dt HCREATE 3
 .Os
 .Sh NAME
@@ -265,9 +265,9 @@ main(void)
 .Ed
 .Sh ERRORS
 The
-.Fn hcreate
+.Fn hcreate ,
 .Fn hcreate_r ,
-.Fn hsearch
+.Fn hsearch ,
 and
 .Fn hsearch_r
 functions will fail if:
@@ -281,7 +281,7 @@ The
 and
 .Fn hsearch_r
 functions will also fail if the action is
-.Dv SEARCH
+.Dv FIND
 and the element is not found:
 .Bl -tag -width Er
 .It Bq Er ESRCH

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:52:17 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA5E0CDE36F;
 Tue, 14 Feb 2017 04:52:17 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 78E571771;
 Tue, 14 Feb 2017 04:52:17 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4qGbG042136;
 Tue, 14 Feb 2017 04:52:16 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4qGVq042134;
 Tue, 14 Feb 2017 04:52:16 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140452.v1E4qGVq042134@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:52:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313725 - in stable/11: sys/netpfil/ipfw usr.sbin/syslogd
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:52:17 -0000

Author: ngie
Date: Tue Feb 14 04:52:16 2017
New Revision: 313725
URL: https://svnweb.freebsd.org/changeset/base/313725

Log:
  MFC r313356:
  
  Fix typos in comments (returing -> returning)

Modified:
  stable/11/sys/netpfil/ipfw/dn_heap.h
  stable/11/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netpfil/ipfw/dn_heap.h
==============================================================================
--- stable/11/sys/netpfil/ipfw/dn_heap.h	Tue Feb 14 04:51:21 2017	(r313724)
+++ stable/11/sys/netpfil/ipfw/dn_heap.h	Tue Feb 14 04:52:16 2017	(r313725)
@@ -85,7 +85,7 @@ enum {
  * HEAP_TOP() returns a pointer to the top element of the heap,
  *	but makes no checks on its existence (XXX should we change ?)
  *
- * heap_extract() removes the entry at the top, returing the pointer.
+ * heap_extract() removes the entry at the top, returning the pointer.
  *	(the key should have been read before).
  *
  * heap_scan() invokes a callback on each entry of the heap.

Modified: stable/11/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/11/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:51:21 2017	(r313724)
+++ stable/11/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:52:16 2017	(r313725)
@@ -2277,7 +2277,7 @@ markit(void)
 
 /*
  * fork off and become a daemon, but wait for the child to come online
- * before returing to the parent, or we get disk thrashing at boot etc.
+ * before returning to the parent, or we get disk thrashing at boot etc.
  * Set a timer so we don't hang forever if it wedges.
  */
 static int

From owner-svn-src-stable@freebsd.org  Tue Feb 14 04:52:26 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54A2ACDE3DA;
 Tue, 14 Feb 2017 04:52:26 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 206231818;
 Tue, 14 Feb 2017 04:52:26 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1E4qP26042193;
 Tue, 14 Feb 2017 04:52:25 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1E4qPmU042191;
 Tue, 14 Feb 2017 04:52:25 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702140452.v1E4qPmU042191@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Tue, 14 Feb 2017 04:52:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313726 - in stable/10: sys/netpfil/ipfw usr.sbin/syslogd
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 04:52:26 -0000

Author: ngie
Date: Tue Feb 14 04:52:24 2017
New Revision: 313726
URL: https://svnweb.freebsd.org/changeset/base/313726

Log:
  MFC r313356:
  
  Fix typos in comments (returing -> returning)

Modified:
  stable/10/sys/netpfil/ipfw/dn_heap.h
  stable/10/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/netpfil/ipfw/dn_heap.h
==============================================================================
--- stable/10/sys/netpfil/ipfw/dn_heap.h	Tue Feb 14 04:52:16 2017	(r313725)
+++ stable/10/sys/netpfil/ipfw/dn_heap.h	Tue Feb 14 04:52:24 2017	(r313726)
@@ -85,7 +85,7 @@ enum {
  * HEAP_TOP() returns a pointer to the top element of the heap,
  *	but makes no checks on its existance (XXX should we change ?)
  *
- * heap_extract() removes the entry at the top, returing the pointer.
+ * heap_extract() removes the entry at the top, returning the pointer.
  *	(the key should have been read before).
  *
  * heap_scan() invokes a callback on each entry of the heap.

Modified: stable/10/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/10/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:52:16 2017	(r313725)
+++ stable/10/usr.sbin/syslogd/syslogd.c	Tue Feb 14 04:52:24 2017	(r313726)
@@ -2129,7 +2129,7 @@ markit(void)
 
 /*
  * fork off and become a daemon, but wait for the child to come online
- * before returing to the parent, or we get disk thrashing at boot etc.
+ * before returning to the parent, or we get disk thrashing at boot etc.
  * Set a timer so we don't hang forever if it wedges.
  */
 static int

From owner-svn-src-stable@freebsd.org  Tue Feb 14 13:45:22 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2242CDE6F4;
 Tue, 14 Feb 2017 13:45:21 +0000 (UTC) (envelope-from avg@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 mx1.freebsd.org (Postfix) with ESMTPS id B96BA1097;
 Tue, 14 Feb 2017 13:45:21 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1EDjKOq061130;
 Tue, 14 Feb 2017 13:45:20 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1EDjK4l061129;
 Tue, 14 Feb 2017 13:45:20 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201702141345.v1EDjK4l061129@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon <avg@FreeBSD.org>
Date: Tue, 14 Feb 2017 13:45:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313728 - stable/11/sys/kern
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 13:45:22 -0000

Author: avg
Date: Tue Feb 14 13:45:20 2017
New Revision: 313728
URL: https://svnweb.freebsd.org/changeset/base/313728

Log:
  MFC r312991: put very expensive sanity checks of advisory locks under DIAGNOSTIC
  
  Sponsored by:	Panzura

Modified:
  stable/11/sys/kern/kern_lockf.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/kern_lockf.c
==============================================================================
--- stable/11/sys/kern/kern_lockf.c	Tue Feb 14 13:35:59 2017	(r313727)
+++ stable/11/sys/kern/kern_lockf.c	Tue Feb 14 13:45:20 2017	(r313728)
@@ -689,7 +689,7 @@ retry_setlock:
 		break;
 	}
 
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
 	/*
 	 * Check for some can't happen stuff. In this case, the active
 	 * lock list becoming disordered or containing mutually
@@ -917,7 +917,7 @@ lf_add_edge(struct lockf_entry *x, struc
 	struct lockf_edge *e;
 	int error;
 
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
 	LIST_FOREACH(e, &x->lf_outedges, le_outlink)
 		KASSERT(e->le_to != y, ("adding lock edge twice"));
 #endif

From owner-svn-src-stable@freebsd.org  Tue Feb 14 13:45:40 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04AE1CDE74E;
 Tue, 14 Feb 2017 13:45:40 +0000 (UTC) (envelope-from avg@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 mx1.freebsd.org (Postfix) with ESMTPS id BED7911C7;
 Tue, 14 Feb 2017 13:45:39 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1EDjcB2061185;
 Tue, 14 Feb 2017 13:45:38 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1EDjcss061184;
 Tue, 14 Feb 2017 13:45:38 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201702141345.v1EDjcss061184@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon <avg@FreeBSD.org>
Date: Tue, 14 Feb 2017 13:45:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313729 - stable/10/sys/kern
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 13:45:40 -0000

Author: avg
Date: Tue Feb 14 13:45:38 2017
New Revision: 313729
URL: https://svnweb.freebsd.org/changeset/base/313729

Log:
  MFC r312991: put very expensive sanity checks of advisory locks under DIAGNOSTIC
  
  Sponsored by:	Panzura

Modified:
  stable/10/sys/kern/kern_lockf.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/kern_lockf.c
==============================================================================
--- stable/10/sys/kern/kern_lockf.c	Tue Feb 14 13:45:20 2017	(r313728)
+++ stable/10/sys/kern/kern_lockf.c	Tue Feb 14 13:45:38 2017	(r313729)
@@ -687,7 +687,7 @@ retry_setlock:
 		break;
 	}
 
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
 	/*
 	 * Check for some can't happen stuff. In this case, the active
 	 * lock list becoming disordered or containing mutually
@@ -915,7 +915,7 @@ lf_add_edge(struct lockf_entry *x, struc
 	struct lockf_edge *e;
 	int error;
 
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
 	LIST_FOREACH(e, &x->lf_outedges, le_outlink)
 		KASSERT(e->le_to != y, ("adding lock edge twice"));
 #endif

From owner-svn-src-stable@freebsd.org  Tue Feb 14 21:02:18 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4E68CDF988;
 Tue, 14 Feb 2017 21:02:18 +0000 (UTC)
 (envelope-from asomers@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 mx1.freebsd.org (Postfix) with ESMTPS id 840E01145;
 Tue, 14 Feb 2017 21:02:18 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1EL2HTF045266;
 Tue, 14 Feb 2017 21:02:17 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1EL2H0Q045264;
 Tue, 14 Feb 2017 21:02:17 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201702142102.v1EL2H0Q045264@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Tue, 14 Feb 2017 21:02:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313742 - stable/11/etc/mtree
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 21:02:18 -0000

Author: asomers
Date: Tue Feb 14 21:02:17 2017
New Revision: 313742
URL: https://svnweb.freebsd.org/changeset/base/313742

Log:
  MFC r311349, r311445
  
  r311349:
  tabs -> spaces in etc/mtree
  
  MFC after:	4 weeks
  
  r311445:
  Fix typo from r311349
  
  Reported by:	lwhsu
  Pointy-hat-to:	asomers
  MFC after:	4 weeks
  X-MFC-with:	311349

Modified:
  stable/11/etc/mtree/BSD.tests.dist
  stable/11/etc/mtree/BSD.var.dist
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/11/etc/mtree/BSD.tests.dist	Tue Feb 14 19:54:32 2017	(r313741)
+++ stable/11/etc/mtree/BSD.tests.dist	Tue Feb 14 21:02:17 2017	(r313742)
@@ -582,8 +582,8 @@
                 ..
             ..
         ..
-	bsdcat
-	..
+        bsdcat
+        ..
         calendar
         ..
         cmp

Modified: stable/11/etc/mtree/BSD.var.dist
==============================================================================
--- stable/11/etc/mtree/BSD.var.dist	Tue Feb 14 19:54:32 2017	(r313741)
+++ stable/11/etc/mtree/BSD.var.dist	Tue Feb 14 21:02:17 2017	(r313742)
@@ -28,7 +28,7 @@
 /set gname=wheel
     backups
     ..
-    cache		mode=0755
+    cache               mode=0755
     ..
     crash
     ..

From owner-svn-src-stable@freebsd.org  Tue Feb 14 21:02:28 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C445ECDF9D0;
 Tue, 14 Feb 2017 21:02:28 +0000 (UTC)
 (envelope-from asomers@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 mx1.freebsd.org (Postfix) with ESMTPS id 9397611EC;
 Tue, 14 Feb 2017 21:02:28 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1EL2Rbd047402;
 Tue, 14 Feb 2017 21:02:27 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1EL2R5Y047398;
 Tue, 14 Feb 2017 21:02:27 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201702142102.v1EL2R5Y047398@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Tue, 14 Feb 2017 21:02:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313743 - stable/10/etc/mtree
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Feb 2017 21:02:28 -0000

Author: asomers
Date: Tue Feb 14 21:02:27 2017
New Revision: 313743
URL: https://svnweb.freebsd.org/changeset/base/313743

Log:
  MFC r311349, r311445
  
  r311349:
  tabs -> spaces in etc/mtree
  
  MFC after:	4 weeks
  
  r311445:
  Fix typo from r311349
  
  Reported by:	lwhsu
  Pointy-hat-to:	asomers
  MFC after:	4 weeks
  X-MFC-with:	311349

Modified:
  stable/10/etc/mtree/BSD.tests.dist
  stable/10/etc/mtree/BSD.var.dist
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/10/etc/mtree/BSD.tests.dist	Tue Feb 14 21:02:17 2017	(r313742)
+++ stable/10/etc/mtree/BSD.tests.dist	Tue Feb 14 21:02:27 2017	(r313743)
@@ -566,8 +566,8 @@
                 ..
             ..
         ..
-	bsdcat
-	..
+        bsdcat
+        ..
         calendar
         ..
         cmp

Modified: stable/10/etc/mtree/BSD.var.dist
==============================================================================
--- stable/10/etc/mtree/BSD.var.dist	Tue Feb 14 21:02:17 2017	(r313742)
+++ stable/10/etc/mtree/BSD.var.dist	Tue Feb 14 21:02:27 2017	(r313743)
@@ -28,7 +28,7 @@
 /set gname=wheel
     backups
     ..
-    cache		mode=0755
+    cache               mode=0755
     ..
     crash
     ..

From owner-svn-src-stable@freebsd.org  Wed Feb 15 00:15:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E86CCCDE367;
 Wed, 15 Feb 2017 00:15:25 +0000 (UTC)
 (envelope-from asomers@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 mx1.freebsd.org (Postfix) with ESMTPS id C301518B2;
 Wed, 15 Feb 2017 00:15:25 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F0FOXF026457;
 Wed, 15 Feb 2017 00:15:24 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F0FO5l026454;
 Wed, 15 Feb 2017 00:15:24 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201702150015.v1F0FO5l026454@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 15 Feb 2017 00:15:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313753 - in stable/11: . tests/sys/geom/class/gate
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 00:15:26 -0000

Author: asomers
Date: Wed Feb 15 00:15:24 2017
New Revision: 313753
URL: https://svnweb.freebsd.org/changeset/base/313753

Log:
  MFC r311893, r313008, r313081
  
  r311893:
  ATFify the geom gate tests.
  
  This ensures their cleanup routines will be run even if they should timeout.
  
  tests/sys/geom/class/gate/ggate_test.sh
  tests/sys/geom/class/gate/Makefile
  	Add an ATF test with three testcases, one for each TAP test. Use
  	ATF-style cleanup functions, and convert sleeps to polling loops.
  
  ObsoleteFiles.inc
  tests/sys/geom/class/gate/conf.sh
  tests/sys/geom/class/gate/1_test.sh
  tests/sys/geom/class/gate/2_test.sh
  tests/sys/geom/class/gate/3_test.sh
  	Delete TAP test files
  
  Reviewed by:	ngie
  MFC after:	4 weeks
  Sponsored by:	Spectra Logic Corp
  Differential Revision:	https://reviews.freebsd.org/D8891
  
  r313008:
  Wait for /dev/ggate* to appear after calling `ggatel create` in :ggatel_{file,md}
  
  The test assumed that `ggatel create` created a device on completion, but that's
  incorrect. This squashes the race by waiting for the device to appear, as
  `ggatel create` daemonizes before issuing an ioctl to geom_gate(4) if not called
  with `-v`.
  
  Discussed with:	asomers
  MFC after:	1 week
  PR:		204616
  Sponsored by:	Dell EMC Isilon
  
  r313081:
  Replace for/retry loops with "wait_for_ggate_device" calls and check
  results of commands
  
  As noted in r313008, the underlying issue was that geom_gate device
  creation wasn't created at ggatel command completion, but some short
  time after. ggatec(8) employs similar logic when creating geom_gate(4)
  devices.
  
  Switch from retry loops (after the ggatec/dd write calls) to
  wait_for_ggate_device function calls after calling ggatec(8) instead
  to detect the presence of the /dev/ggate* device, as this function is
  sufficient for determining whether or not the character device is ready
  for testing
  
  While here, use atf_check consistently with all dd calls to ensure that
  data output is as expected.
  
  MFC after:	1 week
  Reviewed by:	asomers
  Differential Revision:	D9409
  Sponsored by:	Dell EMC Isilon

Added:
  stable/11/tests/sys/geom/class/gate/ggate_test.sh
     - copied, changed from r311893, head/tests/sys/geom/class/gate/ggate_test.sh
Deleted:
  stable/11/tests/sys/geom/class/gate/1_test.sh
  stable/11/tests/sys/geom/class/gate/2_test.sh
  stable/11/tests/sys/geom/class/gate/3_test.sh
  stable/11/tests/sys/geom/class/gate/conf.sh
Modified:
  stable/11/ObsoleteFiles.inc
  stable/11/tests/sys/geom/class/gate/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/ObsoleteFiles.inc
==============================================================================
--- stable/11/ObsoleteFiles.inc	Tue Feb 14 22:46:39 2017	(r313752)
+++ stable/11/ObsoleteFiles.inc	Wed Feb 15 00:15:24 2017	(r313753)
@@ -38,6 +38,11 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20170214: Four files from ggate tests consolidated into one
+OLD_FILES+=usr/tests/sys/geom/class/gate/1_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/2_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/3_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh
 # 20170211: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu
 OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu
 # 20170103: libbsnmptools.so made into an INTERNALLIB

Modified: stable/11/tests/sys/geom/class/gate/Makefile
==============================================================================
--- stable/11/tests/sys/geom/class/gate/Makefile	Tue Feb 14 22:46:39 2017	(r313752)
+++ stable/11/tests/sys/geom/class/gate/Makefile	Wed Feb 15 00:15:24 2017	(r313753)
@@ -4,14 +4,6 @@ PACKAGE=	tests
 
 TESTSDIR=	${TESTSBASE}/sys/geom/class/${.CURDIR:T}
 
-TAP_TESTS_SH+=	1_test
-TAP_TESTS_SH+=	2_test
-TAP_TESTS_SH+=	3_test
-
-${PACKAGE}FILES+=		conf.sh
-
-.for t in ${TAP_TESTS_SH}
-TEST_METADATA.$t+=	required_user="root"
-.endfor
+ATF_TESTS_SH+=	ggate_test
 
 .include <bsd.test.mk>

Copied and modified: stable/11/tests/sys/geom/class/gate/ggate_test.sh (from r311893, head/tests/sys/geom/class/gate/ggate_test.sh)
==============================================================================
--- head/tests/sys/geom/class/gate/ggate_test.sh	Tue Jan 10 20:35:09 2017	(r311893, copy source)
+++ stable/11/tests/sys/geom/class/gate/ggate_test.sh	Wed Feb 15 00:15:24 2017	(r313753)
@@ -4,7 +4,6 @@ PIDFILE=ggated.pid
 PLAINFILES=plainfiles
 PORT=33080
 CONF=gg.exports
-RETRIES=16
 
 atf_test_case ggated cleanup
 ggated_head()
@@ -21,31 +20,23 @@ ggated_body()
 	work=$(alloc_md)
 	src=$(alloc_md)
 
-	dd if=/dev/random of=/dev/$work bs=1m count=1 conv=notrunc
-	dd if=/dev/random of=/dev/$src bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=/dev/$work bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=/dev/$src bs=1m count=1 conv=notrunc
 
 	echo $CONF >> $PLAINFILES
 	echo "127.0.0.1 RW /dev/$work" > $CONF
 
 	atf_check ggated -p $PORT -F $PIDFILE $CONF
-	for try in `jot $RETRIES`; do
-		ggatec create -p $PORT -u $us 127.0.0.1 /dev/$work && break
-		# wait for ggated to be ready
-		sleep 0.25
-	done
-	if [ "$try" -eq "$RETRIES" ]; then
-		atf_fail "ggatec create failed"
-	fi
+	atf_check ggatec create -p $PORT -u $us 127.0.0.1 /dev/$work
 
-	for try in `jot $RETRIES`; do
-		dd if=/dev/${src} of=/dev/ggate${us} bs=1m count=1 conv=notrunc\
-			&& break
-		# Wait for /dev/ggate${us} to be ready
-		sleep 0.25
-	done
-	if [ "$try" -eq "$RETRIES" ]; then
-		atf_fail "dd failed; /dev/ggate${us} isn't working"
-	fi
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/${src} of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum /dev/$src /dev/$work
 }
@@ -74,7 +65,12 @@ ggatel_file_body()
 
 	atf_check ggatel create -u $us work
 
-	dd if=src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=src of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum src work
 }
@@ -99,12 +95,19 @@ ggatel_md_body()
 	work=$(alloc_md)
 	src=$(alloc_md)
 
-	dd if=/dev/random of=$work bs=1m count=1 conv=notrunc
-	dd if=/dev/random of=$src bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=$work bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=$src bs=1m count=1 conv=notrunc
 
 	atf_check ggatel create -u $us /dev/$work
 
-	dd if=/dev/$src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/$src of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum /dev/$src /dev/$work
 }
@@ -191,3 +194,14 @@ common_cleanup()
 	fi
 	true
 }
+
+# Bug 204616: ggatel(8) creates /dev/ggate* asynchronously if `ggatel create`
+#             isn't called with `-v`.
+wait_for_ggate_device()
+{
+	ggate_device=$1
+
+	while [ ! -c $ggate_device ]; do
+		sleep 0.5
+	done
+}

From owner-svn-src-stable@freebsd.org  Wed Feb 15 00:16:54 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AF6CCDE474;
 Wed, 15 Feb 2017 00:16:54 +0000 (UTC)
 (envelope-from asomers@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 mx1.freebsd.org (Postfix) with ESMTPS id 0BE571A3B;
 Wed, 15 Feb 2017 00:16:53 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F0Grjb026575;
 Wed, 15 Feb 2017 00:16:53 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F0Gqqn026572;
 Wed, 15 Feb 2017 00:16:52 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201702150016.v1F0Gqqn026572@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 15 Feb 2017 00:16:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313754 - in stable/10: . tests/sys/geom/class/gate
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 00:16:54 -0000

Author: asomers
Date: Wed Feb 15 00:16:52 2017
New Revision: 313754
URL: https://svnweb.freebsd.org/changeset/base/313754

Log:
  MFC r311893, r313008, r313081
  
  I had to modify the tests slightly for the MFC to stable/10, because
  stable/10 lacks r294037, which enabled /sbin/md5 to work on md(4)
  devices.
  
  r311893:
  ATFify the geom gate tests.
  
  This ensures their cleanup routines will be run even if they should timeout.
  
  tests/sys/geom/class/gate/ggate_test.sh
  tests/sys/geom/class/gate/Makefile
  	Add an ATF test with three testcases, one for each TAP test. Use
  	ATF-style cleanup functions, and convert sleeps to polling loops.
  
  ObsoleteFiles.inc
  tests/sys/geom/class/gate/conf.sh
  tests/sys/geom/class/gate/1_test.sh
  tests/sys/geom/class/gate/2_test.sh
  tests/sys/geom/class/gate/3_test.sh
  	Delete TAP test files
  
  Reviewed by:	ngie
  MFC after:	4 weeks
  Sponsored by:	Spectra Logic Corp
  Differential Revision:	https://reviews.freebsd.org/D8891
  
  r313008:
  Wait for /dev/ggate* to appear after calling `ggatel create` in :ggatel_{file,md}
  
  The test assumed that `ggatel create` created a device on completion, but that's
  incorrect. This squashes the race by waiting for the device to appear, as
  `ggatel create` daemonizes before issuing an ioctl to geom_gate(4) if not called
  with `-v`.
  
  Discussed with:	asomers
  MFC after:	1 week
  PR:		204616
  Sponsored by:	Dell EMC Isilon
  
  r313081:
  Replace for/retry loops with "wait_for_ggate_device" calls and check
  results of commands
  
  As noted in r313008, the underlying issue was that geom_gate device
  creation wasn't created at ggatel command completion, but some short
  time after. ggatec(8) employs similar logic when creating geom_gate(4)
  devices.
  
  Switch from retry loops (after the ggatec/dd write calls) to
  wait_for_ggate_device function calls after calling ggatec(8) instead
  to detect the presence of the /dev/ggate* device, as this function is
  sufficient for determining whether or not the character device is ready
  for testing
  
  While here, use atf_check consistently with all dd calls to ensure that
  data output is as expected.
  
  MFC after:	1 week
  Reviewed by:	asomers
  Differential Revision:	D9409
  Sponsored by:	Dell EMC Isilon

Added:
  stable/10/tests/sys/geom/class/gate/ggate_test.sh
     - copied, changed from r311893, head/tests/sys/geom/class/gate/ggate_test.sh
Deleted:
  stable/10/tests/sys/geom/class/gate/1_test.sh
  stable/10/tests/sys/geom/class/gate/2_test.sh
  stable/10/tests/sys/geom/class/gate/3_test.sh
  stable/10/tests/sys/geom/class/gate/conf.sh
Modified:
  stable/10/ObsoleteFiles.inc
  stable/10/tests/sys/geom/class/gate/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/ObsoleteFiles.inc
==============================================================================
--- stable/10/ObsoleteFiles.inc	Wed Feb 15 00:15:24 2017	(r313753)
+++ stable/10/ObsoleteFiles.inc	Wed Feb 15 00:16:52 2017	(r313754)
@@ -38,6 +38,11 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20170214: Four files from ggate tests consolidated into one
+OLD_FILES+=usr/tests/sys/geom/class/gate/1_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/2_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/3_test
+OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh
 # 20170211: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu
 OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu
 # 20161229: Three files from gnop tests consolidated into one

Modified: stable/10/tests/sys/geom/class/gate/Makefile
==============================================================================
--- stable/10/tests/sys/geom/class/gate/Makefile	Wed Feb 15 00:15:24 2017	(r313753)
+++ stable/10/tests/sys/geom/class/gate/Makefile	Wed Feb 15 00:16:52 2017	(r313754)
@@ -2,16 +2,6 @@
 
 TESTSDIR=	${TESTSBASE}/sys/geom/class/${.CURDIR:T}
 
-TAP_TESTS_SH+=	1_test
-TAP_TESTS_SH+=	2_test
-TAP_TESTS_SH+=	3_test
-
-FILES+=		conf.sh
-FILESNAME_conf.sh=	conf.sh
-FILESDIR=	${TESTSDIR}
-
-.for t in ${TAP_TESTS_SH}
-TEST_METADATA.$t+=	required_user="root"
-.endfor
+ATF_TESTS_SH+=	ggate_test
 
 .include <bsd.test.mk>

Copied and modified: stable/10/tests/sys/geom/class/gate/ggate_test.sh (from r311893, head/tests/sys/geom/class/gate/ggate_test.sh)
==============================================================================
--- head/tests/sys/geom/class/gate/ggate_test.sh	Tue Jan 10 20:35:09 2017	(r311893, copy source)
+++ stable/10/tests/sys/geom/class/gate/ggate_test.sh	Wed Feb 15 00:16:52 2017	(r313754)
@@ -4,7 +4,6 @@ PIDFILE=ggated.pid
 PLAINFILES=plainfiles
 PORT=33080
 CONF=gg.exports
-RETRIES=16
 
 atf_test_case ggated cleanup
 ggated_head()
@@ -21,31 +20,23 @@ ggated_body()
 	work=$(alloc_md)
 	src=$(alloc_md)
 
-	dd if=/dev/random of=/dev/$work bs=1m count=1 conv=notrunc
-	dd if=/dev/random of=/dev/$src bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=/dev/$work bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=/dev/$src bs=1m count=1 conv=notrunc
 
 	echo $CONF >> $PLAINFILES
 	echo "127.0.0.1 RW /dev/$work" > $CONF
 
 	atf_check ggated -p $PORT -F $PIDFILE $CONF
-	for try in `jot $RETRIES`; do
-		ggatec create -p $PORT -u $us 127.0.0.1 /dev/$work && break
-		# wait for ggated to be ready
-		sleep 0.25
-	done
-	if [ "$try" -eq "$RETRIES" ]; then
-		atf_fail "ggatec create failed"
-	fi
+	atf_check ggatec create -p $PORT -u $us 127.0.0.1 /dev/$work
 
-	for try in `jot $RETRIES`; do
-		dd if=/dev/${src} of=/dev/ggate${us} bs=1m count=1 conv=notrunc\
-			&& break
-		# Wait for /dev/ggate${us} to be ready
-		sleep 0.25
-	done
-	if [ "$try" -eq "$RETRIES" ]; then
-		atf_fail "dd failed; /dev/ggate${us} isn't working"
-	fi
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/${src} of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum /dev/$src /dev/$work
 }
@@ -74,7 +65,12 @@ ggatel_file_body()
 
 	atf_check ggatel create -u $us work
 
-	dd if=src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=src of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum src work
 }
@@ -99,12 +95,19 @@ ggatel_md_body()
 	work=$(alloc_md)
 	src=$(alloc_md)
 
-	dd if=/dev/random of=$work bs=1m count=1 conv=notrunc
-	dd if=/dev/random of=$src bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=$work bs=1m count=1 conv=notrunc
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/random of=$src bs=1m count=1 conv=notrunc
 
 	atf_check ggatel create -u $us /dev/$work
 
-	dd if=/dev/$src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+	ggate_dev=/dev/ggate${us}
+
+	wait_for_ggate_device ${ggate_dev}
+
+	atf_check -e ignore -o ignore \
+	    dd if=/dev/$src of=${ggate_dev} bs=1m count=1 conv=notrunc
 
 	checksum /dev/$src /dev/$work
 }
@@ -149,14 +152,14 @@ checksum()
 	src=$1
 	work=$2
 
-	src_checksum=$(md5 -q $src)
-	work_checksum=$(md5 -q $work)
+	src_checksum=$(dd if=${src} bs=1m | md5 -q)
+	work_checksum=$(dd if=${work} bs=1m | md5 -q)
 
 	if [ "$work_checksum" != "$src_checksum" ]; then
 		atf_fail "work md5 checksum didn't match"
 	fi
 
-	ggate_checksum=$(md5 -q /dev/ggate${us})
+	ggate_checksum=$(dd if=/dev/ggate${us} bs=1m | md5 -q)
 	if [ "$ggate_checksum" != "$src_checksum" ]; then
 		atf_fail "ggate md5 checksum didn't match"
 	fi
@@ -191,3 +194,14 @@ common_cleanup()
 	fi
 	true
 }
+
+# Bug 204616: ggatel(8) creates /dev/ggate* asynchronously if `ggatel create`
+#             isn't called with `-v`.
+wait_for_ggate_device()
+{
+	ggate_device=$1
+
+	while [ ! -c $ggate_device ]; do
+		sleep 0.5
+	done
+}

From owner-svn-src-stable@freebsd.org  Wed Feb 15 08:43:27 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8730CE0FFB;
 Wed, 15 Feb 2017 08:43:27 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id 584A1CE9;
 Wed, 15 Feb 2017 08:43:27 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F8hQ9G033884;
 Wed, 15 Feb 2017 08:43:26 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F8hQNH033883;
 Wed, 15 Feb 2017 08:43:26 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702150843.v1F8hQNH033883@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Wed, 15 Feb 2017 08:43:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313762 - stable/11/usr.sbin/bsdinstall/scripts
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 08:43:27 -0000

Author: garga (ports committer)
Date: Wed Feb 15 08:43:26 2017
New Revision: 313762
URL: https://svnweb.freebsd.org/changeset/base/313762

Log:
  MFC r313448:
  
  bsdinstall: Make sure chroot filesystems are umounted after use
  
  * DISTDIR_IS_UNIONFS is set every time BSDINSTALL_DISTDIR is mounted inside
    BSDINSTALL_CHROOT. Use this flag to decide if it needs to be umounted
  * BSDINSTALL_CHROOT/dev is mounted when 'bsdinstall mount' is called, there is
    no need to mount it again when user goes to shell after installation
  
  Reviewed by:	allanjude
  Obtained from:	pfSense
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D8573

Modified:
  stable/11/usr.sbin/bsdinstall/scripts/auto
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/bsdinstall/scripts/auto
==============================================================================
--- stable/11/usr.sbin/bsdinstall/scripts/auto	Wed Feb 15 07:59:54 2017	(r313761)
+++ stable/11/usr.sbin/bsdinstall/scripts/auto	Wed Feb 15 08:43:26 2017	(r313762)
@@ -449,9 +449,11 @@ finalconfig
 trap error SIGINT	# SIGINT is bad again
 bsdinstall config  || error "Failed to save config"
 
+if [ -n "$DISTDIR_IS_UNIONFS" ]; then
+	umount -f $BSDINSTALL_DISTDIR
+fi
+
 if [ ! -z "$BSDINSTALL_FETCHDEST" ]; then
-	[ "$BSDINSTALL_FETCHDEST" != "$BSDINSTALL_DISTDIR" ] && \
-	    umount "$BSDINSTALL_DISTDIR"
 	rm -rf "$BSDINSTALL_FETCHDEST"
 fi
 
@@ -460,7 +462,6 @@ dialog --backtitle "FreeBSD Installer" -
    "The installation is now finished. Before exiting the installer, would you like to open a shell in the new system to make any final manual modifications?" 0 0
 if [ $? -eq 0 ]; then
 	clear
-	mount -t devfs devfs "$BSDINSTALL_CHROOT/dev"
 	echo This shell is operating in a chroot in the new system. \
 	    When finished making configuration changes, type \"exit\".
 	chroot "$BSDINSTALL_CHROOT" /bin/sh 2>&1

From owner-svn-src-stable@freebsd.org  Wed Feb 15 08:49:29 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 889F4CDE135;
 Wed, 15 Feb 2017 08:49:29 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id 440A7ED7;
 Wed, 15 Feb 2017 08:49:29 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F8nSc3034163;
 Wed, 15 Feb 2017 08:49:28 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F8nSRv034162;
 Wed, 15 Feb 2017 08:49:28 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702150849.v1F8nSRv034162@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Wed, 15 Feb 2017 08:49:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313763 - stable/11/usr.sbin/arp
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 08:49:29 -0000

Author: garga (ports committer)
Date: Wed Feb 15 08:49:28 2017
New Revision: 313763
URL: https://svnweb.freebsd.org/changeset/base/313763

Log:
  MFC r313457:
  
  Fix style(9)
  
  Reviewed by:	vangyzen, allanjude, cem
  Approved by:	allanjude
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D9494

Modified:
  stable/11/usr.sbin/arp/arp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/arp/arp.c
==============================================================================
--- stable/11/usr.sbin/arp/arp.c	Wed Feb 15 08:43:26 2017	(r313762)
+++ stable/11/usr.sbin/arp/arp.c	Wed Feb 15 08:49:28 2017	(r313763)
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
  * arp - display, set, and delete arp table entries
  */
 
-
 #include <sys/param.h>
 #include <sys/file.h>
 #include <sys/socket.h>
@@ -80,8 +79,8 @@ __FBSDID("$FreeBSD$");
 #include <strings.h>
 #include <unistd.h>
 
-typedef void (action_fn)(struct sockaddr_dl *sdl,
-	struct sockaddr_in *s_in, struct rt_msghdr *rtm);
+typedef void (action_fn)(struct sockaddr_dl *sdl, struct sockaddr_in *s_in,
+    struct rt_msghdr *rtm);
 
 static int search(u_long addr, action_fn *action);
 static action_fn print_entry;
@@ -344,18 +343,20 @@ set(int argc, char **argv)
 			}
 		} else if (strncmp(argv[0], "blackhole", 9) == 0) {
 			if (flags & RTF_REJECT) {
-				printf("Choose one of blackhole or reject, not both.\n");
+				printf("Choose one of blackhole or reject, "
+				    "not both.");
 			}
 			flags |= RTF_BLACKHOLE;
 		} else if (strncmp(argv[0], "reject", 6) == 0) {
 			if (flags & RTF_BLACKHOLE) {
-				printf("Choose one of blackhole or reject, not both.\n");
+				printf("Choose one of blackhole or reject, "
+				    "not both.");
 			}
 			flags |= RTF_REJECT;
 		} else if (strncmp(argv[0], "trail", 5) == 0) {
 			/* XXX deprecated and undocumented feature */
 			printf("%s: Sending trailers is no longer supported\n",
-				host);
+			    host);
 		}
 		argv++;
 	}
@@ -381,7 +382,7 @@ set(int argc, char **argv)
 
 	/*
 	 * In the case a proxy-arp entry is being added for
-	 * a remote end point, the RTF_ANNOUNCE flag in the 
+	 * a remote end point, the RTF_ANNOUNCE flag in the
 	 * RTM_GET command is an indication to the kernel
 	 * routing code that the interface associated with
 	 * the prefix route covering the local end of the
@@ -467,7 +468,7 @@ delete(char *host)
 		sdl = (struct sockaddr_dl *)(SA_SIZE(addr) + (char *)addr);
 
 		/*
-		 * With the new L2/L3 restructure, the route 
+		 * With the new L2/L3 restructure, the route
 		 * returned is a prefix route. The important
 		 * piece of information from the previous
 		 * RTM_GET is the interface index. In the
@@ -486,7 +487,7 @@ delete(char *host)
 		 * is a proxy-arp entry to remove.
 		 */
 		if (flags & RTF_ANNOUNCE) {
-			fprintf(stderr, "delete: cannot locate %s\n",host);
+			fprintf(stderr, "delete: cannot locate %s\n", host);
 			return (1);
 		}
 
@@ -525,7 +526,7 @@ search(u_long addr, action_fn *action)
 	mib[5] = RTF_LLINFO;
 #else
 	mib[5] = 0;
-#endif	
+#endif
 	if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0)
 		err(1, "route-sysctl-estimate");
 	if (needed == 0)	/* empty table */
@@ -575,7 +576,7 @@ print_entry(struct sockaddr_dl *sdl,
 	struct if_nameindex *p;
 	int seg;
 
-	if (ifnameindex == NULL) 
+	if (ifnameindex == NULL)
 		if ((ifnameindex = if_nameindex()) == NULL)
 			err(1, "cannot retrieve interface names");
 
@@ -597,7 +598,8 @@ print_entry(struct sockaddr_dl *sdl,
 		    sdl->sdl_type == IFT_L2VLAN ||
 		    sdl->sdl_type == IFT_BRIDGE) &&
 		    sdl->sdl_alen == ETHER_ADDR_LEN)
-			printf("%s", ether_ntoa((struct ether_addr *)LLADDR(sdl)));
+			printf("%s",
+			    ether_ntoa((struct ether_addr *)LLADDR(sdl)));
 		else {
 			int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0;
 
@@ -607,7 +609,7 @@ print_entry(struct sockaddr_dl *sdl,
 		printf("(incomplete)");
 
 	for (p = ifnameindex; p && ifnameindex->if_index &&
-		 ifnameindex->if_name; p++) {
+	    ifnameindex->if_name; p++) {
 		if (p->if_index == sdl->sdl_index) {
 			printf(" on %s", p->if_name);
 			break;
@@ -629,31 +631,31 @@ print_entry(struct sockaddr_dl *sdl,
 		printf(" published");
 	switch(sdl->sdl_type) {
 	case IFT_ETHER:
-                printf(" [ethernet]");
-                break;
+		printf(" [ethernet]");
+		break;
 	case IFT_ISO88025:
-                printf(" [token-ring]");
+		printf(" [token-ring]");
 		trld = SDL_ISO88025(sdl);
 		if (trld->trld_rcf != 0) {
 			printf(" rt=%x", ntohs(trld->trld_rcf));
 			for (seg = 0;
 			     seg < ((TR_RCF_RIFLEN(trld->trld_rcf) - 2 ) / 2);
-			     seg++) 
+			     seg++)
 				printf(":%x", ntohs(*(trld->trld_route[seg])));
 		}
                 break;
 	case IFT_FDDI:
-                printf(" [fddi]");
-                break;
+		printf(" [fddi]");
+		break;
 	case IFT_ATM:
-                printf(" [atm]");
-                break;
+		printf(" [atm]");
+		break;
 	case IFT_L2VLAN:
 		printf(" [vlan]");
 		break;
 	case IFT_IEEE1394:
-                printf(" [firewire]");
-                break;
+		printf(" [firewire]");
+		break;
 	case IFT_BRIDGE:
 		printf(" [bridge]");
 		break;
@@ -662,8 +664,8 @@ print_entry(struct sockaddr_dl *sdl,
 		break;
 	default:
 		break;
-        }
-		
+	}
+
 	printf("\n");
 
 }
@@ -688,13 +690,13 @@ static void
 usage(void)
 {
 	fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n",
-		"usage: arp [-n] [-i interface] hostname",
-		"       arp [-n] [-i interface] -a",
-		"       arp -d hostname [pub]",
-		"       arp -d [-i interface] -a",
-		"       arp -s hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
-		"       arp -S hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
-		"       arp -f filename");
+	    "usage: arp [-n] [-i interface] hostname",
+	    "       arp [-n] [-i interface] -a",
+	    "       arp -d hostname [pub]",
+	    "       arp -d [-i interface] -a",
+	    "       arp -s hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
+	    "       arp -S hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
+	    "       arp -f filename");
 	exit(1);
 }
 
@@ -753,12 +755,12 @@ rtmsg(int cmd, struct sockaddr_in *dst, 
 	case RTM_GET:
 		rtm->rtm_addrs |= RTA_DST;
 	}
-#define NEXTADDR(w, s)					   \
-	do {						   \
-		if ((s) != NULL && rtm->rtm_addrs & (w)) { \
-			bcopy((s), cp, sizeof(*(s)));	   \
-			cp += SA_SIZE(s);		   \
-		}					   \
+#define NEXTADDR(w, s)						\
+	do {							\
+		if ((s) != NULL && rtm->rtm_addrs & (w)) {	\
+			bcopy((s), cp, sizeof(*(s)));		\
+			cp += SA_SIZE(s);			\
+		}						\
 	} while (0)
 
 	NEXTADDR(RTA_DST, dst);
@@ -814,7 +816,7 @@ get_ether_addr(in_addr_t ipaddr, struct 
 	}
 
 #define NEXTIFR(i)						\
-    ((struct ifreq *)((char *)&(i)->ifr_addr			\
+	((struct ifreq *)((char *)&(i)->ifr_addr		\
 	+ MAX((i)->ifr_addr.sa_len, sizeof((i)->ifr_addr))) )
 
 	/*
@@ -835,14 +837,10 @@ get_ether_addr(in_addr_t ipaddr, struct 
 		if (ioctl(sock, SIOCGIFFLAGS, &ifreq) < 0)
 			continue;
 		if ((ifreq.ifr_flags &
-		     (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|
-				IFF_LOOPBACK|IFF_NOARP))
-		     != (IFF_UP|IFF_BROADCAST))
+		    (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|
+		    IFF_LOOPBACK|IFF_NOARP)) != (IFF_UP|IFF_BROADCAST))
 			continue;
-		/*
-		 * Get its netmask and check that it's on 
-		 * the right subnet.
-		 */
+		/* Get its netmask and check that it's on the right subnet. */
 		if (ioctl(sock, SIOCGIFNETMASK, &ifreq) < 0)
 			continue;
 		mask = ((struct sockaddr_in *)

From owner-svn-src-stable@freebsd.org  Wed Feb 15 09:15:56 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC616CDEC68;
 Wed, 15 Feb 2017 09:15:56 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id 7EC2F1DD3;
 Wed, 15 Feb 2017 09:15:56 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F9FqKM046041;
 Wed, 15 Feb 2017 09:15:52 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F9FqmK046040;
 Wed, 15 Feb 2017 09:15:52 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702150915.v1F9FqmK046040@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Wed, 15 Feb 2017 09:15:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313764 - stable/10/usr.sbin/bsdinstall/scripts
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 09:15:56 -0000

Author: garga (ports committer)
Date: Wed Feb 15 09:15:51 2017
New Revision: 313764
URL: https://svnweb.freebsd.org/changeset/base/313764

Log:
  MFC r313448:
  
  bsdinstall: Make sure chroot filesystems are umounted after use
  
  * DISTDIR_IS_UNIONFS is set every time BSDINSTALL_DISTDIR is mounted inside
    BSDINSTALL_CHROOT. Use this flag to decide if it needs to be umounted
  * BSDINSTALL_CHROOT/dev is mounted when 'bsdinstall mount' is called, there is
    no need to mount it again when user goes to shell after installation
  
  Reviewed by:	allanjude
  Obtained from:	pfSense
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D8573

Modified:
  stable/10/usr.sbin/bsdinstall/scripts/auto
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/bsdinstall/scripts/auto
==============================================================================
--- stable/10/usr.sbin/bsdinstall/scripts/auto	Wed Feb 15 08:49:28 2017	(r313763)
+++ stable/10/usr.sbin/bsdinstall/scripts/auto	Wed Feb 15 09:15:51 2017	(r313764)
@@ -387,9 +387,11 @@ finalconfig
 trap error SIGINT	# SIGINT is bad again
 bsdinstall config  || error "Failed to save config"
 
+if [ -n "$DISTDIR_IS_UNIONFS" ]; then
+	umount -f $BSDINSTALL_DISTDIR
+fi
+
 if [ ! -z "$BSDINSTALL_FETCHDEST" ]; then
-	[ "$BSDINSTALL_FETCHDEST" != "$BSDINSTALL_DISTDIR" ] && \
-	    umount "$BSDINSTALL_DISTDIR"
 	rm -rf "$BSDINSTALL_FETCHDEST"
 fi
 
@@ -398,7 +400,6 @@ dialog --backtitle "FreeBSD Installer" -
    "The installation is now finished. Before exiting the installer, would you like to open a shell in the new system to make any final manual modifications?" 0 0
 if [ $? -eq 0 ]; then
 	clear
-	mount -t devfs devfs "$BSDINSTALL_CHROOT/dev"
 	echo This shell is operating in a chroot in the new system. \
 	    When finished making configuration changes, type \"exit\".
 	chroot "$BSDINSTALL_CHROOT" /bin/sh 2>&1

From owner-svn-src-stable@freebsd.org  Wed Feb 15 09:18:10 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2AD13CDED06;
 Wed, 15 Feb 2017 09:18:10 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id E0FE71F3D;
 Wed, 15 Feb 2017 09:18:09 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1F9I9Px046164;
 Wed, 15 Feb 2017 09:18:09 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1F9I9eu046163;
 Wed, 15 Feb 2017 09:18:09 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702150918.v1F9I9eu046163@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Wed, 15 Feb 2017 09:18:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313765 - stable/10/usr.sbin/arp
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 09:18:10 -0000

Author: garga (ports committer)
Date: Wed Feb 15 09:18:08 2017
New Revision: 313765
URL: https://svnweb.freebsd.org/changeset/base/313765

Log:
  MFC r313457:
  
  Fix style(9)
  
  Reviewed by:	vangyzen, allanjude, cem
  Approved by:	allanjude
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D9494

Modified:
  stable/10/usr.sbin/arp/arp.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/arp/arp.c
==============================================================================
--- stable/10/usr.sbin/arp/arp.c	Wed Feb 15 09:15:51 2017	(r313764)
+++ stable/10/usr.sbin/arp/arp.c	Wed Feb 15 09:18:08 2017	(r313765)
@@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$");
  * arp - display, set, and delete arp table entries
  */
 
-
 #include <sys/param.h>
 #include <sys/file.h>
 #include <sys/socket.h>
@@ -80,8 +79,8 @@ __FBSDID("$FreeBSD$");
 #include <strings.h>
 #include <unistd.h>
 
-typedef void (action_fn)(struct sockaddr_dl *sdl,
-	struct sockaddr_in *s_in, struct rt_msghdr *rtm);
+typedef void (action_fn)(struct sockaddr_dl *sdl, struct sockaddr_in *s_in,
+    struct rt_msghdr *rtm);
 
 static int search(u_long addr, action_fn *action);
 static action_fn print_entry;
@@ -344,18 +343,20 @@ set(int argc, char **argv)
 			}
 		} else if (strncmp(argv[0], "blackhole", 9) == 0) {
 			if (flags & RTF_REJECT) {
-				printf("Choose one of blackhole or reject, not both.\n");
+				printf("Choose one of blackhole or reject, "
+				    "not both.");
 			}
 			flags |= RTF_BLACKHOLE;
 		} else if (strncmp(argv[0], "reject", 6) == 0) {
 			if (flags & RTF_BLACKHOLE) {
-				printf("Choose one of blackhole or reject, not both.\n");
+				printf("Choose one of blackhole or reject, "
+				    "not both.");
 			}
 			flags |= RTF_REJECT;
 		} else if (strncmp(argv[0], "trail", 5) == 0) {
 			/* XXX deprecated and undocumented feature */
 			printf("%s: Sending trailers is no longer supported\n",
-				host);
+			    host);
 		}
 		argv++;
 	}
@@ -381,7 +382,7 @@ set(int argc, char **argv)
 
 	/*
 	 * In the case a proxy-arp entry is being added for
-	 * a remote end point, the RTF_ANNOUNCE flag in the 
+	 * a remote end point, the RTF_ANNOUNCE flag in the
 	 * RTM_GET command is an indication to the kernel
 	 * routing code that the interface associated with
 	 * the prefix route covering the local end of the
@@ -467,7 +468,7 @@ delete(char *host)
 		sdl = (struct sockaddr_dl *)(SA_SIZE(addr) + (char *)addr);
 
 		/*
-		 * With the new L2/L3 restructure, the route 
+		 * With the new L2/L3 restructure, the route
 		 * returned is a prefix route. The important
 		 * piece of information from the previous
 		 * RTM_GET is the interface index. In the
@@ -486,7 +487,7 @@ delete(char *host)
 		 * is a proxy-arp entry to remove.
 		 */
 		if (flags & RTF_ANNOUNCE) {
-			fprintf(stderr, "delete: cannot locate %s\n",host);
+			fprintf(stderr, "delete: cannot locate %s\n", host);
 			return (1);
 		}
 
@@ -525,7 +526,7 @@ search(u_long addr, action_fn *action)
 	mib[5] = RTF_LLINFO;
 #else
 	mib[5] = 0;
-#endif	
+#endif
 	if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0)
 		err(1, "route-sysctl-estimate");
 	if (needed == 0)	/* empty table */
@@ -575,7 +576,7 @@ print_entry(struct sockaddr_dl *sdl,
 	struct if_nameindex *p;
 	int seg;
 
-	if (ifnameindex == NULL) 
+	if (ifnameindex == NULL)
 		if ((ifnameindex = if_nameindex()) == NULL)
 			err(1, "cannot retrieve interface names");
 
@@ -597,7 +598,8 @@ print_entry(struct sockaddr_dl *sdl,
 		    sdl->sdl_type == IFT_L2VLAN ||
 		    sdl->sdl_type == IFT_BRIDGE) &&
 		    sdl->sdl_alen == ETHER_ADDR_LEN)
-			printf("%s", ether_ntoa((struct ether_addr *)LLADDR(sdl)));
+			printf("%s",
+			    ether_ntoa((struct ether_addr *)LLADDR(sdl)));
 		else {
 			int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0;
 
@@ -607,7 +609,7 @@ print_entry(struct sockaddr_dl *sdl,
 		printf("(incomplete)");
 
 	for (p = ifnameindex; p && ifnameindex->if_index &&
-		 ifnameindex->if_name; p++) {
+	    ifnameindex->if_name; p++) {
 		if (p->if_index == sdl->sdl_index) {
 			printf(" on %s", p->if_name);
 			break;
@@ -629,31 +631,31 @@ print_entry(struct sockaddr_dl *sdl,
 		printf(" published");
 	switch(sdl->sdl_type) {
 	case IFT_ETHER:
-                printf(" [ethernet]");
-                break;
+		printf(" [ethernet]");
+		break;
 	case IFT_ISO88025:
-                printf(" [token-ring]");
+		printf(" [token-ring]");
 		trld = SDL_ISO88025(sdl);
 		if (trld->trld_rcf != 0) {
 			printf(" rt=%x", ntohs(trld->trld_rcf));
 			for (seg = 0;
 			     seg < ((TR_RCF_RIFLEN(trld->trld_rcf) - 2 ) / 2);
-			     seg++) 
+			     seg++)
 				printf(":%x", ntohs(*(trld->trld_route[seg])));
 		}
                 break;
 	case IFT_FDDI:
-                printf(" [fddi]");
-                break;
+		printf(" [fddi]");
+		break;
 	case IFT_ATM:
-                printf(" [atm]");
-                break;
+		printf(" [atm]");
+		break;
 	case IFT_L2VLAN:
 		printf(" [vlan]");
 		break;
 	case IFT_IEEE1394:
-                printf(" [firewire]");
-                break;
+		printf(" [firewire]");
+		break;
 	case IFT_BRIDGE:
 		printf(" [bridge]");
 		break;
@@ -662,8 +664,8 @@ print_entry(struct sockaddr_dl *sdl,
 		break;
 	default:
 		break;
-        }
-		
+	}
+
 	printf("\n");
 
 }
@@ -688,13 +690,13 @@ static void
 usage(void)
 {
 	fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n",
-		"usage: arp [-n] [-i interface] hostname",
-		"       arp [-n] [-i interface] -a",
-		"       arp -d hostname [pub]",
-		"       arp -d [-i interface] -a",
-		"       arp -s hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
-		"       arp -S hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
-		"       arp -f filename");
+	    "usage: arp [-n] [-i interface] hostname",
+	    "       arp [-n] [-i interface] -a",
+	    "       arp -d hostname [pub]",
+	    "       arp -d [-i interface] -a",
+	    "       arp -s hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
+	    "       arp -S hostname ether_addr [temp] [reject | blackhole] [pub [only]]",
+	    "       arp -f filename");
 	exit(1);
 }
 
@@ -753,12 +755,12 @@ rtmsg(int cmd, struct sockaddr_in *dst, 
 	case RTM_GET:
 		rtm->rtm_addrs |= RTA_DST;
 	}
-#define NEXTADDR(w, s)					   \
-	do {						   \
-		if ((s) != NULL && rtm->rtm_addrs & (w)) { \
-			bcopy((s), cp, sizeof(*(s)));	   \
-			cp += SA_SIZE(s);		   \
-		}					   \
+#define NEXTADDR(w, s)						\
+	do {							\
+		if ((s) != NULL && rtm->rtm_addrs & (w)) {	\
+			bcopy((s), cp, sizeof(*(s)));		\
+			cp += SA_SIZE(s);			\
+		}						\
 	} while (0)
 
 	NEXTADDR(RTA_DST, dst);
@@ -814,7 +816,7 @@ get_ether_addr(in_addr_t ipaddr, struct 
 	}
 
 #define NEXTIFR(i)						\
-    ((struct ifreq *)((char *)&(i)->ifr_addr			\
+	((struct ifreq *)((char *)&(i)->ifr_addr		\
 	+ MAX((i)->ifr_addr.sa_len, sizeof((i)->ifr_addr))) )
 
 	/*
@@ -835,14 +837,10 @@ get_ether_addr(in_addr_t ipaddr, struct 
 		if (ioctl(sock, SIOCGIFFLAGS, &ifreq) < 0)
 			continue;
 		if ((ifreq.ifr_flags &
-		     (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|
-				IFF_LOOPBACK|IFF_NOARP))
-		     != (IFF_UP|IFF_BROADCAST))
+		    (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|
+		    IFF_LOOPBACK|IFF_NOARP)) != (IFF_UP|IFF_BROADCAST))
 			continue;
-		/*
-		 * Get its netmask and check that it's on 
-		 * the right subnet.
-		 */
+		/* Get its netmask and check that it's on the right subnet. */
 		if (ioctl(sock, SIOCGIFNETMASK, &ifreq) < 0)
 			continue;
 		mask = ((struct sockaddr_in *)

From owner-svn-src-stable@freebsd.org  Wed Feb 15 10:35:48 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F925CDF8FC;
 Wed, 15 Feb 2017 10:35:48 +0000 (UTC) (envelope-from jah@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 mx1.freebsd.org (Postfix) with ESMTPS id D284915D6;
 Wed, 15 Feb 2017 10:35:47 +0000 (UTC) (envelope-from jah@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1FAZlrP078623;
 Wed, 15 Feb 2017 10:35:47 GMT (envelope-from jah@FreeBSD.org)
Received: (from jah@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1FAZkam078621;
 Wed, 15 Feb 2017 10:35:46 GMT (envelope-from jah@FreeBSD.org)
Message-Id: <201702151035.v1FAZkam078621@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org
 using -f
From: "Jason A. Harmening" <jah@FreeBSD.org>
Date: Wed, 15 Feb 2017 10:35:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313766 - in stable/11/sys/arm: arm include
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 10:35:48 -0000

Author: jah
Date: Wed Feb 15 10:35:46 2017
New Revision: 313766
URL: https://svnweb.freebsd.org/changeset/base/313766

Log:
  MFC r312610, r312792
  
  r312610:
   Like r310481 for i386, move the objects used to create temporary
   mappings for armv6 pmap zero and copy operations to the MD PCPU region.
   Change sysmap initialization to only allocate KVA pages for CPUs that
   are actually present.
  
   While here, collapse CMAP3 into CMAP2 (their use was mutually exclusive
   anyway) and "recover" some space in PCPU padding that has always been
   available due to 64-byte cacheline padding.
  
  r312792:
   Further cleanup of per-CPU armv6 pmap data:
  
   - Replace pcpu_find(curcpu) with get_pcpu(), which is much more direct.
  
   - Remove armv4 pcpu fields which I added in r286296 but never needed
     to use.
  
   - armv6 pc_qmap_addr was leftover from the old armv6 pmap
     implementation.  Rename it and put it to use in the new one.

Modified:
  stable/11/sys/arm/arm/pmap-v6.c
  stable/11/sys/arm/include/pcpu.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/arm/arm/pmap-v6.c
==============================================================================
--- stable/11/sys/arm/arm/pmap-v6.c	Wed Feb 15 09:18:08 2017	(r313765)
+++ stable/11/sys/arm/arm/pmap-v6.c	Wed Feb 15 10:35:46 2017	(r313766)
@@ -110,11 +110,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/smp.h>
 #include <sys/sched.h>
 #include <sys/sysctl.h>
-#ifdef SMP
-#include <sys/smp.h>
-#else
-#include <sys/cpuset.h>
-#endif
 
 #ifdef DDB
 #include <ddb/ddb.h>
@@ -296,16 +291,6 @@ vm_paddr_t first_managed_pa;
 /*
  *  All those kernel PT submaps that BSD is so fond of
  */
-struct sysmaps {
-	struct	mtx lock;
-	pt2_entry_t *CMAP1;
-	pt2_entry_t *CMAP2;
-	pt2_entry_t *CMAP3;
-	caddr_t	CADDR1;
-	caddr_t	CADDR2;
-	caddr_t	CADDR3;
-};
-static struct sysmaps sysmaps_pcpu[MAXCPU];
 static pt2_entry_t *CMAP3;
 static caddr_t CADDR3;
 caddr_t _tmppt = 0;
@@ -1135,8 +1120,7 @@ void
 pmap_bootstrap(vm_offset_t firstaddr)
 {
 	pt2_entry_t *unused __unused;
-	struct sysmaps *sysmaps;
-	u_int i;
+	struct pcpu *pc;
 
 	/*
 	 * Initialize the kernel pmap (which is statically allocated).
@@ -1175,16 +1159,14 @@ pmap_bootstrap(vm_offset_t firstaddr)
 
 	/*
 	 * Local CMAP1/CMAP2 are used for zeroing and copying pages.
-	 * Local CMAP3 is used for data cache cleaning.
+	 * Local CMAP2 is also used for data cache cleaning.
 	 * Global CMAP3 is used for the idle process page zeroing.
 	 */
-	for (i = 0; i < MAXCPU; i++) {
-		sysmaps = &sysmaps_pcpu[i];
-		mtx_init(&sysmaps->lock, "SYSMAPS", NULL, MTX_DEF);
-		SYSMAP(caddr_t, sysmaps->CMAP1, sysmaps->CADDR1, 1);
-		SYSMAP(caddr_t, sysmaps->CMAP2, sysmaps->CADDR2, 1);
-		SYSMAP(caddr_t, sysmaps->CMAP3, sysmaps->CADDR3, 1);
-	}
+	pc = get_pcpu();
+	mtx_init(&pc->pc_cmap_lock, "SYSMAPS", NULL, MTX_DEF);
+	SYSMAP(caddr_t, pc->pc_cmap1_pte2p, pc->pc_cmap1_addr, 1);
+	SYSMAP(caddr_t, pc->pc_cmap2_pte2p, pc->pc_cmap2_addr, 1);
+	SYSMAP(vm_offset_t, pc->pc_qmap_pte2p, pc->pc_qmap_addr, 1);
 	SYSMAP(caddr_t, CMAP3, CADDR3, 1);
 
 	/*
@@ -1218,19 +1200,33 @@ pmap_bootstrap(vm_offset_t firstaddr)
 }
 
 static void
-pmap_init_qpages(void)
+pmap_init_reserved_pages(void)
 {
 	struct pcpu *pc;
+	vm_offset_t pages;
 	int i;
 
 	CPU_FOREACH(i) {
 		pc = pcpu_find(i);
-		pc->pc_qmap_addr = kva_alloc(PAGE_SIZE);
-		if (pc->pc_qmap_addr == 0)
+		/*
+		 * Skip if the mapping has already been initialized,
+		 * i.e. this is the BSP.
+		 */
+		if (pc->pc_cmap1_addr != 0)
+			continue;
+		mtx_init(&pc->pc_cmap_lock, "SYSMAPS", NULL, MTX_DEF);
+		pages = kva_alloc(PAGE_SIZE * 3);
+		if (pages == 0)
 			panic("%s: unable to allocate KVA", __func__);
+		pc->pc_cmap1_pte2p = pt2map_entry(pages);
+		pc->pc_cmap2_pte2p = pt2map_entry(pages + PAGE_SIZE);
+		pc->pc_qmap_pte2p = pt2map_entry(pages + (PAGE_SIZE * 2));
+		pc->pc_cmap1_addr = (caddr_t)pages;
+		pc->pc_cmap2_addr = (caddr_t)(pages + PAGE_SIZE);
+		pc->pc_qmap_addr = pages + (PAGE_SIZE * 2);
 	}
 }
-SYSINIT(qpages_init, SI_SUB_CPU, SI_ORDER_ANY, pmap_init_qpages, NULL);
+SYSINIT(rpages_init, SI_SUB_CPU, SI_ORDER_ANY, pmap_init_reserved_pages, NULL);
 
 /*
  *  The function can already be use in second initialization stage.
@@ -1581,8 +1577,9 @@ pagezero(void *page)
 static __inline vm_paddr_t
 pmap_pt2pg_zero(vm_page_t m)
 {
+	pt2_entry_t *cmap2_pte2p;
 	vm_paddr_t pa;
-	struct sysmaps *sysmaps;
+	struct pcpu *pc;
 
 	pa = VM_PAGE_TO_PHYS(m);
 
@@ -1591,20 +1588,27 @@ pmap_pt2pg_zero(vm_page_t m)
 	 *      to sync it even if the sync is only DSB.
 	 */
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (pte2_load(sysmaps->CMAP2) != 0)
+	pc = get_pcpu();
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("%s: CMAP2 busy", __func__);
-	pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(pa, PTE2_AP_KRW,
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(pa, PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
 	/*  Even VM_ALLOC_ZERO request is only advisory. */
 	if ((m->flags & PG_ZERO) == 0)
-		pagezero(sysmaps->CADDR2);
-	pte2_sync_range((pt2_entry_t *)sysmaps->CADDR2, PAGE_SIZE);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+		pagezero(pc->pc_cmap2_addr);
+	pte2_sync_range((pt2_entry_t *)pc->pc_cmap2_addr, PAGE_SIZE);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
+
+	/*
+	 * Unpin the thread before releasing the lock.  Otherwise the thread
+	 * could be rescheduled while still bound to the current CPU, only
+	 * to unpin itself immediately upon resuming execution.
+	 */
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 
 	return (pa);
 }
@@ -5643,9 +5647,10 @@ small_mappings:
 void
 pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap2_pte2p;
 	vm_memattr_t oma;
 	vm_paddr_t pa;
+	struct pcpu *pc;
 
 	oma = m->md.pat_mode;
 	m->md.pat_mode = ma;
@@ -5672,17 +5677,18 @@ pmap_page_set_memattr(vm_page_t m, vm_me
 	if (ma != oma) {
 		pa = VM_PAGE_TO_PHYS(m);
 		sched_pin();
-		sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-		mtx_lock(&sysmaps->lock);
-		if (*sysmaps->CMAP2)
+		pc = get_pcpu();
+		cmap2_pte2p = pc->pc_cmap2_pte2p;
+		mtx_lock(&pc->pc_cmap_lock);
+		if (pte2_load(cmap2_pte2p) != 0)
 			panic("%s: CMAP2 busy", __func__);
-		pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(pa, PTE2_AP_KRW,
+		pte2_store(cmap2_pte2p, PTE2_KERN_NG(pa, PTE2_AP_KRW,
 		    vm_memattr_to_pte2(ma)));
-		dcache_wbinv_poc((vm_offset_t)sysmaps->CADDR2, pa, PAGE_SIZE);
-		pte2_clear(sysmaps->CMAP2);
-		tlb_flush((vm_offset_t)sysmaps->CADDR2);
+		dcache_wbinv_poc((vm_offset_t)pc->pc_cmap2_addr, pa, PAGE_SIZE);
+		pte2_clear(cmap2_pte2p);
+		tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 		sched_unpin();
-		mtx_unlock(&sysmaps->lock);
+		mtx_unlock(&pc->pc_cmap_lock);
 	}
 }
 
@@ -5760,20 +5766,22 @@ pmap_page_exists_quick(pmap_t pmap, vm_p
 void
 pmap_zero_page(vm_page_t m)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap2_pte2p;
+	struct pcpu *pc;
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (pte2_load(sysmaps->CMAP2) != 0)
+	pc = get_pcpu();
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("%s: CMAP2 busy", __func__);
-	pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
-	pagezero(sysmaps->CADDR2);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+	pagezero(pc->pc_cmap2_addr);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 /*
@@ -5785,23 +5793,25 @@ pmap_zero_page(vm_page_t m)
 void
 pmap_zero_page_area(vm_page_t m, int off, int size)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap2_pte2p;
+	struct pcpu *pc;
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (pte2_load(sysmaps->CMAP2) != 0)
+	pc = get_pcpu();
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("%s: CMAP2 busy", __func__);
-	pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
 	if (off == 0 && size == PAGE_SIZE)
-		pagezero(sysmaps->CADDR2);
+		pagezero(pc->pc_cmap2_addr);
 	else
-		bzero(sysmaps->CADDR2 + off, size);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+		bzero(pc->pc_cmap2_addr + off, size);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 /*
@@ -5834,26 +5844,29 @@ pmap_zero_page_idle(vm_page_t m)
 void
 pmap_copy_page(vm_page_t src, vm_page_t dst)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap1_pte2p, *cmap2_pte2p;
+	struct pcpu *pc;
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (pte2_load(sysmaps->CMAP1) != 0)
+	pc = get_pcpu();
+	cmap1_pte2p = pc->pc_cmap1_pte2p;
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap1_pte2p) != 0)
 		panic("%s: CMAP1 busy", __func__);
-	if (pte2_load(sysmaps->CMAP2) != 0)
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("%s: CMAP2 busy", __func__);
-	pte2_store(sysmaps->CMAP1, PTE2_KERN_NG(VM_PAGE_TO_PHYS(src),
+	pte2_store(cmap1_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(src),
 	    PTE2_AP_KR | PTE2_NM, vm_page_pte2_attr(src)));
-	pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(VM_PAGE_TO_PHYS(dst),
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(dst),
 	    PTE2_AP_KRW, vm_page_pte2_attr(dst)));
-	bcopy(sysmaps->CADDR1, sysmaps->CADDR2, PAGE_SIZE);
-	pte2_clear(sysmaps->CMAP1);
-	tlb_flush((vm_offset_t)sysmaps->CADDR1);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+	bcopy(pc->pc_cmap1_addr, pc->pc_cmap2_addr, PAGE_SIZE);
+	pte2_clear(cmap1_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap1_addr);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 int unmapped_buf_allowed = 1;
@@ -5862,18 +5875,21 @@ void
 pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[],
     vm_offset_t b_offset, int xfersize)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap1_pte2p, *cmap2_pte2p;
 	vm_page_t a_pg, b_pg;
 	char *a_cp, *b_cp;
 	vm_offset_t a_pg_offset, b_pg_offset;
+	struct pcpu *pc;
 	int cnt;
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (*sysmaps->CMAP1 != 0)
+	pc = get_pcpu();
+	cmap1_pte2p = pc->pc_cmap1_pte2p;
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap1_pte2p) != 0)
 		panic("pmap_copy_pages: CMAP1 busy");
-	if (*sysmaps->CMAP2 != 0)
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("pmap_copy_pages: CMAP2 busy");
 	while (xfersize > 0) {
 		a_pg = ma[a_offset >> PAGE_SHIFT];
@@ -5882,58 +5898,58 @@ pmap_copy_pages(vm_page_t ma[], vm_offse
 		b_pg = mb[b_offset >> PAGE_SHIFT];
 		b_pg_offset = b_offset & PAGE_MASK;
 		cnt = min(cnt, PAGE_SIZE - b_pg_offset);
-		pte2_store(sysmaps->CMAP1, PTE2_KERN_NG(VM_PAGE_TO_PHYS(a_pg),
+		pte2_store(cmap1_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(a_pg),
 		    PTE2_AP_KR | PTE2_NM, vm_page_pte2_attr(a_pg)));
-		tlb_flush_local((vm_offset_t)sysmaps->CADDR1);
-		pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(VM_PAGE_TO_PHYS(b_pg),
+		tlb_flush_local((vm_offset_t)pc->pc_cmap1_addr);
+		pte2_store(cmap2_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(b_pg),
 		    PTE2_AP_KRW, vm_page_pte2_attr(b_pg)));
-		tlb_flush_local((vm_offset_t)sysmaps->CADDR2);
-		a_cp = sysmaps->CADDR1 + a_pg_offset;
-		b_cp = sysmaps->CADDR2 + b_pg_offset;
+		tlb_flush_local((vm_offset_t)pc->pc_cmap2_addr);
+		a_cp = pc->pc_cmap1_addr + a_pg_offset;
+		b_cp = pc->pc_cmap2_addr + b_pg_offset;
 		bcopy(a_cp, b_cp, cnt);
 		a_offset += cnt;
 		b_offset += cnt;
 		xfersize -= cnt;
 	}
-	pte2_clear(sysmaps->CMAP1);
-	tlb_flush((vm_offset_t)sysmaps->CADDR1);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+	pte2_clear(cmap1_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap1_addr);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 vm_offset_t
 pmap_quick_enter_page(vm_page_t m)
 {
+	struct pcpu *pc;
 	pt2_entry_t *pte2p;
-	vm_offset_t qmap_addr;
 
 	critical_enter();
-	qmap_addr = PCPU_GET(qmap_addr);
-	pte2p = pt2map_entry(qmap_addr);
+	pc = get_pcpu();
+	pte2p = pc->pc_qmap_pte2p;
 
 	KASSERT(pte2_load(pte2p) == 0, ("%s: PTE2 busy", __func__));
 
 	pte2_store(pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
-	return (qmap_addr);
+	return (pc->pc_qmap_addr);
 }
 
 void
 pmap_quick_remove_page(vm_offset_t addr)
 {
+	struct pcpu *pc;
 	pt2_entry_t *pte2p;
-	vm_offset_t qmap_addr;
 
-	qmap_addr = PCPU_GET(qmap_addr);
-	pte2p = pt2map_entry(qmap_addr);
+	pc = get_pcpu();
+	pte2p = pc->pc_qmap_pte2p;
 
-	KASSERT(addr == qmap_addr, ("%s: invalid address", __func__));
+	KASSERT(addr == pc->pc_qmap_addr, ("%s: invalid address", __func__));
 	KASSERT(pte2_load(pte2p) != 0, ("%s: PTE2 not in use", __func__));
 
 	pte2_clear(pte2p);
-	tlb_flush(qmap_addr);
+	tlb_flush(pc->pc_qmap_addr);
 	critical_exit();
 }
 
@@ -6226,22 +6242,24 @@ pmap_set_pcb_pagedir(pmap_t pmap, struct
 static void
 pmap_dcache_wb_pou(vm_paddr_t pa, vm_size_t size, uint32_t attr)
 {
-	struct sysmaps *sysmaps;
+	pt2_entry_t *cmap2_pte2p;
+	struct pcpu *pc;
 
 	KASSERT(((pa & PAGE_MASK) + size) <= PAGE_SIZE,
 	    ("%s: not on single page", __func__));
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (*sysmaps->CMAP3)
-		panic("%s: CMAP3 busy", __func__);
-	pte2_store(sysmaps->CMAP3, PTE2_KERN_NG(pa, PTE2_AP_KRW, attr));
-	dcache_wb_pou((vm_offset_t)sysmaps->CADDR3 + (pa & PAGE_MASK), size);
-	pte2_clear(sysmaps->CMAP3);
-	tlb_flush((vm_offset_t)sysmaps->CADDR3);
+	pc = get_pcpu();
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap2_pte2p) != 0)
+		panic("%s: CMAP2 busy", __func__);
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(pa, PTE2_AP_KRW, attr));
+	dcache_wb_pou((vm_offset_t)pc->pc_cmap2_addr + (pa & PAGE_MASK), size);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 /*
@@ -6491,25 +6509,27 @@ pmap_fault(pmap_t pmap, vm_offset_t far,
 static void
 pmap_zero_page_check(vm_page_t m)
 {
+	pt2_entry_t *cmap2_pte2p;
 	uint32_t *p, *end;
-	struct sysmaps *sysmaps;
+	struct pcpu *pc;
 
 	sched_pin();
-	sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)];
-	mtx_lock(&sysmaps->lock);
-	if (pte2_load(sysmaps->CMAP2) != 0)
+	pc = get_pcpu();
+	cmap2_pte2p = pc->pc_cmap2_pte2p;
+	mtx_lock(&pc->pc_cmap_lock);
+	if (pte2_load(cmap2_pte2p) != 0)
 		panic("%s: CMAP2 busy", __func__);
-	pte2_store(sysmaps->CMAP2, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
+	pte2_store(cmap2_pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
-	end = (uint32_t*)(sysmaps->CADDR2 + PAGE_SIZE);
-	for (p = (uint32_t*)sysmaps->CADDR2; p < end; p++)
+	end = (uint32_t*)(pc->pc_cmap2_addr + PAGE_SIZE);
+	for (p = (uint32_t*)pc->pc_cmap2_addr; p < end; p++)
 		if (*p != 0)
 			panic("%s: page %p not zero, va: %p", __func__, m,
-			    sysmaps->CADDR2);
-	pte2_clear(sysmaps->CMAP2);
-	tlb_flush((vm_offset_t)sysmaps->CADDR2);
+			    pc->pc_cmap2_addr);
+	pte2_clear(cmap2_pte2p);
+	tlb_flush((vm_offset_t)pc->pc_cmap2_addr);
 	sched_unpin();
-	mtx_unlock(&sysmaps->lock);
+	mtx_unlock(&pc->pc_cmap_lock);
 }
 
 int

Modified: stable/11/sys/arm/include/pcpu.h
==============================================================================
--- stable/11/sys/arm/include/pcpu.h	Wed Feb 15 09:18:08 2017	(r313765)
+++ stable/11/sys/arm/include/pcpu.h	Wed Feb 15 10:35:46 2017	(r313766)
@@ -34,6 +34,9 @@
 
 #include <machine/cpuconf.h>
 
+#include <sys/_lock.h>
+#include <sys/_mutex.h>
+
 #define	ALT_STACK_SIZE	128
 
 struct vmspace;
@@ -41,21 +44,25 @@ struct vmspace;
 #endif	/* _KERNEL */
 
 #if __ARM_ARCH >= 6
+
 #define PCPU_MD_FIELDS							\
 	unsigned int pc_vfpsid;						\
 	unsigned int pc_vfpmvfr0;					\
 	unsigned int pc_vfpmvfr1;					\
 	struct pmap *pc_curpmap;					\
+	struct mtx pc_cmap_lock;					\
+	void *pc_cmap1_pte2p;						\
+	void *pc_cmap2_pte2p;						\
+	caddr_t pc_cmap1_addr;						\
+	caddr_t pc_cmap2_addr;						\
 	vm_offset_t pc_qmap_addr;					\
-	void *pc_qmap_pte;						\
+	void *pc_qmap_pte2p;						\
 	unsigned int pc_dbreg[32];					\
 	int pc_dbreg_cmd;						\
-	char __pad[1]
+	char __pad[19]
 #else
 #define PCPU_MD_FIELDS							\
-	vm_offset_t qmap_addr;						\
-	void *pc_qmap_pte;						\
-	char __pad[149]
+	char __pad[157]
 #endif
 
 #ifdef _KERNEL

From owner-svn-src-stable@freebsd.org  Wed Feb 15 15:18:45 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17C7CCE04AF;
 Wed, 15 Feb 2017 15:18:45 +0000 (UTC)
 (envelope-from emaste@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 mx1.freebsd.org (Postfix) with ESMTPS id D84BD1FFE;
 Wed, 15 Feb 2017 15:18:44 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1FFIha1093882;
 Wed, 15 Feb 2017 15:18:43 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1FFIhBB093881;
 Wed, 15 Feb 2017 15:18:43 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702151518.v1FFIhBB093881@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Wed, 15 Feb 2017 15:18:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313773 - stable/11/contrib/llvm/tools/lld/ELF
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 15:18:45 -0000

Author: emaste
Date: Wed Feb 15 15:18:43 2017
New Revision: 313773
URL: https://svnweb.freebsd.org/changeset/base/313773

Log:
  MFC r313458: lld: Allow arbitrary code alignment in .eh_frame
  
  According to the specification, CIE code alignment factor is an
  arbitrary unsigned LEB128 encoded value.
  
  PR:		216908

Modified:
  stable/11/contrib/llvm/tools/lld/ELF/EhFrame.cpp
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/llvm/tools/lld/ELF/EhFrame.cpp
==============================================================================
--- stable/11/contrib/llvm/tools/lld/ELF/EhFrame.cpp	Wed Feb 15 14:56:47 2017	(r313772)
+++ stable/11/contrib/llvm/tools/lld/ELF/EhFrame.cpp	Wed Feb 15 15:18:43 2017	(r313773)
@@ -117,9 +117,8 @@ template <class ELFT> uint8_t getFdeEnco
   StringRef Aug(reinterpret_cast<const char *>(D.begin()), AugEnd - D.begin());
   D = D.slice(Aug.size() + 1);
 
-  // Code alignment factor should always be 1 for .eh_frame.
-  if (readByte(D) != 1)
-    fatal("CIE code alignment must be 1");
+  // Skip code alignment factor.
+  skipLeb128(D);
 
   // Skip data alignment factor.
   skipLeb128(D);

From owner-svn-src-stable@freebsd.org  Wed Feb 15 16:55:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2E89CE0F35;
 Wed, 15 Feb 2017 16:55:25 +0000 (UTC)
 (envelope-from wblock@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 mx1.freebsd.org (Postfix) with ESMTPS id 9EE3F1D76;
 Wed, 15 Feb 2017 16:55:25 +0000 (UTC)
 (envelope-from wblock@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1FGtOhw034583;
 Wed, 15 Feb 2017 16:55:24 GMT (envelope-from wblock@FreeBSD.org)
Received: (from wblock@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1FGtOpP034582;
 Wed, 15 Feb 2017 16:55:24 GMT (envelope-from wblock@FreeBSD.org)
Message-Id: <201702151655.v1FGtOpP034582@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: wblock set sender to
 wblock@FreeBSD.org using -f
From: Warren Block <wblock@FreeBSD.org>
Date: Wed, 15 Feb 2017 16:55:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313776 - stable/11/usr.sbin/ctladm
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 16:55:25 -0000

Author: wblock (doc committer)
Date: Wed Feb 15 16:55:24 2017
New Revision: 313776
URL: https://svnweb.freebsd.org/changeset/base/313776

Log:
  MFC r313162: Replace Cyrillic characters with Latin (normal) ones.

Modified:
  stable/11/usr.sbin/ctladm/ctladm.8
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/ctladm/ctladm.8
==============================================================================
--- stable/11/usr.sbin/ctladm/ctladm.8	Wed Feb 15 16:52:21 2017	(r313775)
+++ stable/11/usr.sbin/ctladm/ctladm.8	Wed Feb 15 16:55:24 2017	(r313776)
@@ -888,8 +888,8 @@ client through the selection of appropri
 The default value is "restricted".  It improves data integrity, but may
 introduce some additional delays.
 .It Va serseq
-Set to "on" to serialize conseсutive reads/writes.
-Set to "read" to serialize conseсutive reads.
+Set to "on" to serialize consecutive reads/writes.
+Set to "read" to serialize consecutive reads.
 Set to "off" to allow them be issued in parallel.
 Parallel issue of consecutive operations may confuse logic of the
 backing file system, hurting performance; but it may improve performance

From owner-svn-src-stable@freebsd.org  Thu Feb 16 04:23:46 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6A9DCE1313;
 Thu, 16 Feb 2017 04:23:46 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 6C031E94;
 Thu, 16 Feb 2017 04:23:46 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G4Njtv014071;
 Thu, 16 Feb 2017 04:23:45 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G4Nj7W014069;
 Thu, 16 Feb 2017 04:23:45 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702160423.v1G4Nj7W014069@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 16 Feb 2017 04:23:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313789 - stable/10/share/mk
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 04:23:46 -0000

Author: ngie
Date: Thu Feb 16 04:23:45 2017
New Revision: 313789
URL: https://svnweb.freebsd.org/changeset/base/313789

Log:
  MFC r288241:
  
  r288241 (by bdrewery):
  
  Remove 'set -e' that are no longer needed as it is already default.
  
  When bmake was initially imported at r241298 shell commands were no longer
  ran with 'set -e' as they were before.  This was fixed in r254980 so they
  again always use 'set -e'.

Modified:
  stable/10/share/mk/bsd.subdir.mk
  stable/10/share/mk/suite.test.mk
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/share/mk/bsd.subdir.mk
==============================================================================
--- stable/10/share/mk/bsd.subdir.mk	Thu Feb 16 04:21:24 2017	(r313788)
+++ stable/10/share/mk/bsd.subdir.mk	Thu Feb 16 04:23:45 2017	(r313789)
@@ -45,7 +45,7 @@ distribute: .MAKE
 
 _SUBDIR: .USE .MAKE
 .if defined(SUBDIR) && !empty(SUBDIR) && !defined(NO_SUBDIR)
-	@${_+_}set -e; for entry in ${SUBDIR:N.WAIT}; do \
+	@${_+_}for entry in ${SUBDIR:N.WAIT}; do \
 		if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \
 			${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH} (${.TARGET:S,realinstall,install,:S,^_sub.,,})"; \
 			edir=$${entry}.${MACHINE_ARCH}; \
@@ -86,8 +86,7 @@ __deps+= ${__target}_subdir_${__dep}
 .endfor
 ${__target}_subdir_${__dir}: .PHONY .MAKE ${__deps}
 .if !defined(NO_SUBDIR)
-	@${_+_}set -e; \
-		if test -d ${.CURDIR}/${__dir}.${MACHINE_ARCH}; then \
+	@${_+_}if test -d ${.CURDIR}/${__dir}.${MACHINE_ARCH}; then \
 			${ECHODIR} "===> ${DIRPRFX}${__dir}.${MACHINE_ARCH} (${__target:realinstall=install})"; \
 			edir=${__dir}.${MACHINE_ARCH}; \
 			cd ${.CURDIR}/$${edir}; \
@@ -118,7 +117,7 @@ _sub.${__stage}${__target}: _SUBDIR
 .endfor
 .if !target(${__target})
 ${__target}: .MAKE
-	${_+_}set -e; cd ${.CURDIR}; ${MAKE} build${__target}; ${MAKE} install${__target}
+	${_+_}cd ${.CURDIR}; ${MAKE} build${__target}; ${MAKE} install${__target}
 .endif
 .endfor
 

Modified: stable/10/share/mk/suite.test.mk
==============================================================================
--- stable/10/share/mk/suite.test.mk	Thu Feb 16 04:21:24 2017	(r313788)
+++ stable/10/share/mk/suite.test.mk	Thu Feb 16 04:23:45 2017	(r313789)
@@ -90,8 +90,7 @@ realtest: .PHONY
 	@echo "*** installed in ${TESTSBASE}.  This test run may raise false"
 	@echo "*** positives and/or false negatives."
 	@echo
-	@set -e; \
-	${KYUA} test -k ${DESTDIR}${TESTSDIR}/Kyuafile; \
+	@${KYUA} test -k ${DESTDIR}${TESTSDIR}/Kyuafile; \
 	result=0; \
 	echo; \
 	echo "*** Once again, note that "make test" is unsupported."; \

From owner-svn-src-stable@freebsd.org  Thu Feb 16 05:14:09 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 265E7CE1089;
 Thu, 16 Feb 2017 05:14:09 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id D82C474E;
 Thu, 16 Feb 2017 05:14:08 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G5E85M034328;
 Thu, 16 Feb 2017 05:14:08 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G5E7ux034321;
 Thu, 16 Feb 2017 05:14:07 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702160514.v1G5E7ux034321@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 16 Feb 2017 05:14:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313790 - in stable/10: . share/man/man7 share/mk
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 05:14:09 -0000

Author: ngie
Date: Thu Feb 16 05:14:07 2017
New Revision: 313790
URL: https://svnweb.freebsd.org/changeset/base/313790

Log:
  MFC r285119,r292502,r295380:
  
  r285119 (by jmmv):
  
  Add support for TEST_METADATA
  
  Allow Makefiles to define generic metadata settings that apply to all test
  programs defined by a Makefile.  The generic TEST_METADATA variable extends
  the per-test program settings already supported via TEST_METADATA.<program>.
  
  This feature will be useful to easily apply some settings to all programs
  in a directory.  In particular, Kyua 0.12 will support parallel execution
  of test programs and a bunch of them will need to be tagged as is_exclusive
  to indicate that they cannot be run in parallel with anything else due to
  their side-effects.  It will be reasonable to set this setting on whole
  directories.
  
  r292502:
  
  Always expose LOCALBASE, not just when CROSS_TOOLCHAIN is defined
  
  Instead of using which(1) to look for doxygen, look for it in <LOCALBASE>/bin .
  $PATH gets mangled by make buildenv, etc so it's better to just be explicit
  about the path if someone uses that for instance.
  
  r295380:
  
  Simplify running the FreeBSD test suite
  
  Replace `make regress` (legacy test make target) and `make test` (incomplete
  test make target added with the FreeBSD test suite) with make check as it's
  consistent with other open source projects.
  
  `make check` defaults to running tests from `.OBJDIR`, but can be overridden
  with the `CHECKDIR` variable.
  
  Add `make checkworld` target to simplify running the FreeBSD test suite from
  `TESTSBASE` (i.e. the top-level tests directory), similar to buildworld.
  
  Document `make check` and `make checkworld` in build(7).
  
  Other minor changes:
  
  - Rename intermediate file (`Kyuafile.auto`) to `Kyuafile` to simplify
    `make check`.
  - Remove terse warnings attached to `beforetest`/`aftertest`.
  - Add kyua binary check to check target in suite.test.mk; error out if it's
    not found
  
  The MFC is [partly] contingent on other build related changes being MFCed.
  
  X-MFC to: stable/10
  Relnotes: yes

Modified:
  stable/10/Makefile
  stable/10/Makefile.inc1
  stable/10/share/man/man7/build.7
  stable/10/share/mk/bsd.README
  stable/10/share/mk/bsd.subdir.mk
  stable/10/share/mk/bsd.sys.mk
  stable/10/share/mk/bsd.test.mk
  stable/10/share/mk/suite.test.mk
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/Makefile
==============================================================================
--- stable/10/Makefile	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/Makefile	Thu Feb 16 05:14:07 2017	(r313790)
@@ -21,6 +21,7 @@
 # kernel-toolchains   - Build kernel-toolchain for all universe targets.
 # doxygen             - Build API documentation of the kernel, needs doxygen.
 # update              - Convenient way to update your source tree(s).
+# checkworld          - Run test suite on installed world.
 # check-old           - List obsolete directories/files/libraries.
 # check-old-dirs      - List obsolete directories.
 # check-old-files     - List obsolete files.
@@ -99,8 +100,8 @@
 # For more information, see the build(7) manual page.
 #
 TGTS=	all all-man buildenv buildenvvars buildkernel buildworld \
-	check-old check-old-dirs check-old-files check-old-libs \
-	checkdpadd clean cleandepend cleandir \
+	check check-old check-old-dirs check-old-files check-old-libs \
+	checkdpadd checkworld clean cleandepend cleandir \
 	delete-old delete-old-dirs delete-old-files delete-old-libs \
 	depend distribute distributekernel distributekernel.debug \
 	distributeworld distrib-dirs distribution doxygen \
@@ -108,7 +109,7 @@ TGTS=	all all-man buildenv buildenvvars 
 	installkernel.debug packagekernel packageworld \
 	reinstallkernel reinstallkernel.debug \
 	installworld kernel-toolchain libraries lint maninstall \
-	obj objlink regress rerelease showconfig tags toolchain update \
+	obj objlink rerelease showconfig tags toolchain update \
 	_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
 	_build-tools _cross-tools _includes _libraries _depend \
 	build32 builddtb distribute32 install32 xdev xdev-build xdev-install \
@@ -374,6 +375,10 @@ make bmake: .PHONY
 		${MMAKE} all; \
 		${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR=
 
+regress: .PHONY
+	@echo "'make regress' has been renamed 'make check'" | /usr/bin/fmt
+	@false
+
 tinderbox toolchains kernel-toolchains: upgrade_checks
 
 tinderbox:

Modified: stable/10/Makefile.inc1
==============================================================================
--- stable/10/Makefile.inc1	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/Makefile.inc1	Thu Feb 16 05:14:07 2017	(r313790)
@@ -35,6 +35,7 @@
 # The intended user-driven targets are:
 # buildworld  - rebuild *everything*, including glue to help do upgrades
 # installworld- install everything built by "buildworld"
+# checkworld  - run test suite on installed world
 # doxygen     - build API documentation of the kernel
 # update      - convenient way to update your source tree (eg: svn/svnup)
 #
@@ -50,6 +51,8 @@
 .include <bsd.arch.inc.mk>
 .include <bsd.compiler.mk>
 
+LOCALBASE?=	/usr/local
+
 # We must do share/info early so that installation of info `dir'
 # entries works correctly.  Do it first since it is less likely to
 # grow dependencies on include and lib than vice versa.
@@ -1190,12 +1193,26 @@ packagekernel:
 .endif
 
 #
+#
+# checkworld
+#
+# Run test suite on installed world.
+#
+checkworld: .PHONY
+	@if [ ! -x ${LOCALBASE}/bin/kyua ]; then \
+		echo "You need kyua (devel/kyua) to run the test suite." | /usr/bin/fmt; \
+		exit 1; \
+	fi
+	${_+_}${LOCALBASE}/bin/kyua test -k ${TESTSBASE}/Kyuafile
+
+#
+#
 # doxygen
 #
 # Build the API documentation with doxygen
 #
 doxygen: .PHONY
-	@if [ ! -x `/usr/bin/which doxygen` ]; then \
+	@if [ ! -x ${LOCALBASE}/bin/doxygen ]; then \
 		echo "You need doxygen (devel/doxygen) to generate the API documentation of the kernel." | /usr/bin/fmt; \
 		exit 1; \
 	fi

Modified: stable/10/share/man/man7/build.7
==============================================================================
--- stable/10/share/man/man7/build.7	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/man/man7/build.7	Thu Feb 16 05:14:07 2017	(r313790)
@@ -107,6 +107,16 @@ section below, and by the variables docu
 The following list provides the names and actions for the targets
 supported by the build system:
 .Bl -tag -width ".Cm cleandepend"
+.It Cm check
+Run tests for a given subdirectory.
+The default directory used is
+.Pa ${.OBJDIR} ,
+but the check directory can be changed with
+.Pa ${CHECKDIR} .
+.It Cm checkworld
+Run the
+.Fx
+test suite on installed world.
 .It Cm clean
 Remove any files created during the build process.
 .It Cm cleandepend
@@ -653,6 +663,7 @@ make TARGET=sparc64 DESTDIR=/clients/spa
 .Xr mergemaster 8 ,
 .Xr portsnap 8 ,
 .Xr reboot 8 ,
-.Xr shutdown 8
+.Xr shutdown 8 ,
+.Xr tests 7
 .Sh AUTHORS
 .An Mike W. Meyer Aq mwm@mired.org .

Modified: stable/10/share/mk/bsd.README
==============================================================================
--- stable/10/share/mk/bsd.README	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/mk/bsd.README	Thu Feb 16 05:14:07 2017	(r313790)
@@ -492,6 +492,17 @@ It has seven targets:
 
 	all:
 		build the test programs.
+	check:
+		runs the test programs from CHECKDIR with kyua test.
+
+		The beforecheck and aftercheck targets will be invoked, if
+		defined, to execute commands before and after the realcheck
+		target has been executed, respectively.
+
+		The devel/kyua package must be installed before invoking this
+		target.
+
+		See CHECKDIR for more details.
 	clean:
 		remove the test programs and any object files.
 	cleandir:
@@ -510,12 +521,6 @@ It has seven targets:
 		run lint on the source files.
 	tags:
 		create a tags file for the source files.
-	test:
-		runs the test programs from the object directory; if the
-		Makefile does not itself define the target test, the
-		targets beforetest and aftertest may also be used to
-		cause actions immediately before and after the test
-		target is executed.
 
 It sets/uses the following variables, among many others:
 
@@ -529,6 +534,10 @@ TESTSDIR	Path to the installed tests.  M
 		${TESTSBASE}/${RELDIR:H} , e.g. /usr/tests/bin/ls when
 		included from bin/ls/tests .
 
+CHECKDIR	The directory that 'make check' executes tests from.
+
+		The value of CHECKDIR defaults to .OBJDIR.
+
 KYUAFILE	If 'auto' (the default), generate a Kyuafile out of the
 		test programs defined in the Makefile.  If 'yes', then a
 		manually-crafted Kyuafile must be supplied with the

Modified: stable/10/share/mk/bsd.subdir.mk
==============================================================================
--- stable/10/share/mk/bsd.subdir.mk	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/mk/bsd.subdir.mk	Thu Feb 16 05:14:07 2017	(r313790)
@@ -24,9 +24,9 @@
 # 		This is a variant of install, which will
 # 		put the stuff into the right "distribution".
 #
-#	afterinstall, all, all-man, beforeinstall, checkdpadd, clean,
+#	afterinstall, all, all-man, beforeinstall, check, checkdpadd, clean,
 #	cleandepend, cleandir, cleanilinks depend, install, lint,
-#	maninstall, manlint, obj, objlink, realinstall, regress, tags
+#	maninstall, manlint, obj, objlink, realinstall, tags
 #
 
 .if !target(__<bsd.subdir.mk>__)
@@ -70,9 +70,9 @@ ${SUBDIR:N.WAIT}: .PHONY .MAKE
 
 # Work around parsing of .if nested in .for by putting .WAIT string into a var.
 __wait= .WAIT
-.for __target in all all-man checkdpadd clean cleandepend cleandir \
+.for __target in all all-man check checkdpadd clean cleandepend cleandir \
     cleanilinks depend distribute lint maninstall manlint obj objlink \
-    realinstall regress tags ${SUBDIR_TARGETS}
+    realinstall tags ${SUBDIR_TARGETS}
 .ifdef SUBDIR_PARALLEL
 __subdir_targets=
 .for __dir in ${SUBDIR}

Modified: stable/10/share/mk/bsd.sys.mk
==============================================================================
--- stable/10/share/mk/bsd.sys.mk	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/mk/bsd.sys.mk	Thu Feb 16 05:14:07 2017	(r313790)
@@ -158,11 +158,11 @@ CFLAGS+=	${CWARNFLAGS} ${CWARNFLAGS.${.I
 # or expect to ever be up-to-date.
 PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \
 		beforelinking build build-tools buildfiles buildincludes \
-		checkdpadd clean cleandepend cleandir cleanobj configure \
+		check checkdpadd clean cleandepend cleandir cleanobj configure \
 		depend dependall distclean distribute exe extract \
 		html includes install installfiles installincludes lint \
 		obj objlink objs objwarn realall realdepend \
-		realinstall regress subdir-all subdir-depend subdir-install \
+		realinstall subdir-all subdir-depend subdir-install \
 		tags whereobj
 
 .if defined(PORTNAME)

Modified: stable/10/share/mk/bsd.test.mk
==============================================================================
--- stable/10/share/mk/bsd.test.mk	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/mk/bsd.test.mk	Thu Feb 16 05:14:07 2017	(r313790)
@@ -68,11 +68,15 @@ _TESTS=
 .include <plain.test.mk>
 .include <tap.test.mk>
 
+# kyua automatically descends directories; only run make check on the
+# top-level directory
+.if !make(check)
 .for ts in ${TESTS_SUBDIRS}
 .if empty(SUBDIR:M${ts})
 SUBDIR+= ${ts}
 .endif
 .endfor
+.endif
 
 # it is rare for test cases to have man pages
 .if !defined(MAN)
@@ -83,18 +87,13 @@ MAN=
 .include <suite.test.mk>
 .endif
 
-.if !target(realtest)
-realtest: .PHONY
+.if !target(realcheck)
+realcheck: .PHONY
 	@echo "$@ not defined; skipping"
 .endif
 
-test: .PHONY
-.ORDER: beforetest realtest
-test: beforetest realtest
-
-.if target(aftertest)
-.ORDER: realtest aftertest
-test: aftertest
-.endif
+beforecheck realcheck aftercheck check: .PHONY
+.ORDER: beforecheck realcheck aftercheck
+check: beforecheck realcheck aftercheck
 
 .include <bsd.progs.mk>

Modified: stable/10/share/mk/suite.test.mk
==============================================================================
--- stable/10/share/mk/suite.test.mk	Thu Feb 16 04:23:45 2017	(r313789)
+++ stable/10/share/mk/suite.test.mk	Thu Feb 16 05:14:07 2017	(r313790)
@@ -30,12 +30,19 @@ KYUAFILE?= auto
 # Kyua as this is later encoded in the Kyuafile test program definitions.
 #TEST_INTERFACE.<test-program>= interface-name
 
+# Metadata properties applicable to all test programs.
+#
+# All the variables for a test program defined in the Makefile are appended
+# to the test program's definition in the Kyuafile.  This feature can be
+# used to avoid having to explicitly supply a Kyuafile in the source
+# directory, allowing the caller Makefile to rely on the KYUAFILE=auto
+# behavior defined here.
+#TEST_METADATA+= key="value"
+
 # Per-test program metadata properties as a list of key/value pairs.
 #
-# All the variables for a particular program are appended to the program's
-# definition in the Kyuafile.  This feature can be used to avoid having to
-# explicitly supply a Kyuafile in the source directory, allowing the caller
-# Makefile to rely on the KYUAFILE=auto behavior defined here.
+# These per-test program settings _extend_ the values provided in the
+# unqualified TEST_METADATA variable.
 #TEST_METADATA.<test-program>+= key="value"
 
 .if ${KYUAFILE:tl} != "no"
@@ -43,11 +50,12 @@ FILES+=	Kyuafile
 FILESDIR_Kyuafile= ${TESTSDIR}
 .endif
 
-.if ${KYUAFILE:tl} == "auto"
-CLEANFILES+= Kyuafile Kyuafile.tmp
-.endif
+.for _T in ${_TESTS}
+_TEST_METADATA.${_T}= ${TEST_METADATA} ${TEST_METADATA.${_T}}
+.endfor
 
 .if ${KYUAFILE:tl} == "auto"
+CLEANFILES+= Kyuafile Kyuafile.tmp
 Kyuafile: Makefile
 	@{ \
 	    echo '-- Automatically generated by bsd.test.mk.'; \
@@ -59,10 +67,10 @@ Kyuafile: Makefile
 	} > ${.TARGET}.tmp
 .for _T in ${_TESTS}
 .if defined(.PARSEDIR)
-	@echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${TEST_METADATA.${_T}:C/$/,/:tW:C/^/, /W:C/,$//W}}' \
+	@echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${_TEST_METADATA.${_T}:C/$/,/:tW:C/^/, /W:C/,$//W}}' \
 	    >>${.TARGET}.tmp
 .else
-	@echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${TEST_METADATA.${_T}:C/^/, /:Q:S/\\ ,/,/g:S,\\,,g}}' \
+	@echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${_TEST_METADATA.${_T}:C/^/, /:Q:S/\\ ,/,/g:S,\\,,g}}' \
 	    >>Kyuafile.auto.tmp
 .endif
 .endfor
@@ -72,9 +80,11 @@ Kyuafile: Makefile
 	@mv ${.TARGET}.tmp ${.TARGET}
 .endif
 
+CHECKDIR?=	${DESTDIR}${TESTSDIR}
+
 KYUA= ${LOCALBASE}/bin/kyua
-.if exists(${KYUA})
-# Definition of the "make test" target and supporting variables.
+
+# Definition of the "make check" target and supporting variables.
 #
 # This target, by necessity, can only work for native builds (i.e. a FreeBSD
 # host building a release for the same system).  The target runs Kyua, which is
@@ -83,35 +93,15 @@ KYUA= ${LOCALBASE}/bin/kyua
 # Due to the dependencies of the binaries built by the source tree and how they
 # are used by tests, it is highly possible for a execution of "make test" to
 # report bogus results unless the new binaries are put in place.
-realtest: .PHONY
-	@echo "*** WARNING: make test is experimental"
-	@echo "***"
-	@echo "*** Using this test does not preclude you from running the tests"
-	@echo "*** installed in ${TESTSBASE}.  This test run may raise false"
-	@echo "*** positives and/or false negatives."
-	@echo
-	@${KYUA} test -k ${DESTDIR}${TESTSDIR}/Kyuafile; \
-	result=0; \
-	echo; \
-	echo "*** Once again, note that "make test" is unsupported."; \
-	test $${result} -eq 0
-.endif
 
-beforetest: .PHONY
-.if defined(TESTSDIR)
-.if ${TESTSDIR} == ${TESTSBASE}
-# Forbid running from ${TESTSBASE}.  It can cause false positives/negatives and
-# it does not cover all the tests (e.g. it misses testing software in external).
-	@echo "*** Sorry, you cannot use make test from src/tests.  Install the"
-	@echo "*** tests into their final location and run them from ${TESTSBASE}"
-	@false
-.else
-	@echo "*** Using this test does not preclude you from running the tests"
-	@echo "*** installed in ${TESTSBASE}.  This test run may raise false"
-	@echo "*** positives and/or false negatives."
-.endif
-.else
-	@echo "*** No TESTSDIR defined; nothing to do."
-	@false
-.endif
-	@echo
+realcheck: .PHONY
+	@if [ ! -x ${KYUA} ]; then \
+		echo; \
+		echo "kyua binary not installed at expected location (${.TARGET})"; \
+		echo; \
+		echo "Please install via pkg install, or specify the path to the kyua"; \
+		echo "package via the \$${LOCALBASE} variable, e.g. "; \
+		echo "LOCALBASE=\"${LOCALBASE}\""; \
+		false; \
+	fi
+	@${KYUA} test -k ${CHECKDIR}/Kyuafile

From owner-svn-src-stable@freebsd.org  Thu Feb 16 05:17:41 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBD61CE118A;
 Thu, 16 Feb 2017 05:17:41 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id AC80D8F6;
 Thu, 16 Feb 2017 05:17:41 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G5HeKV034510;
 Thu, 16 Feb 2017 05:17:40 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G5Helr034504;
 Thu, 16 Feb 2017 05:17:40 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702160517.v1G5Helr034504@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 16 Feb 2017 05:17:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313791 - in stable/10: bin/sh/tests
 cddl/usr.sbin/dtrace/tests/common share/mk tests/sys
 tests/sys/pjdfstest/tests usr.bin/bmake/tests
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 05:17:42 -0000

Author: ngie
Date: Thu Feb 16 05:17:40 2017
New Revision: 313791
URL: https://svnweb.freebsd.org/changeset/base/313791

Log:
  MFC r295643:
  
  r295643 (by bdrewery):
  
  Test directories can build in parallel fine.

Added:
  stable/10/usr.bin/bmake/tests/Makefile.inc
     - copied unchanged from r295643, head/usr.bin/bmake/tests/Makefile.inc
Modified:
  stable/10/bin/sh/tests/Makefile
  stable/10/cddl/usr.sbin/dtrace/tests/common/Makefile
  stable/10/share/mk/bsd.test.mk
  stable/10/tests/sys/Makefile
  stable/10/tests/sys/pjdfstest/tests/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/sh/tests/Makefile
==============================================================================
--- stable/10/bin/sh/tests/Makefile	Thu Feb 16 05:14:07 2017	(r313790)
+++ stable/10/bin/sh/tests/Makefile	Thu Feb 16 05:17:40 2017	(r313791)
@@ -10,6 +10,4 @@ TESTS_SUBDIRS+=	parameters
 TESTS_SUBDIRS+=	parser
 TESTS_SUBDIRS+=	set-e
 
-SUBDIR_PARALLEL=
-
 .include <bsd.test.mk>

Modified: stable/10/cddl/usr.sbin/dtrace/tests/common/Makefile
==============================================================================
--- stable/10/cddl/usr.sbin/dtrace/tests/common/Makefile	Thu Feb 16 05:14:07 2017	(r313790)
+++ stable/10/cddl/usr.sbin/dtrace/tests/common/Makefile	Thu Feb 16 05:17:40 2017	(r313791)
@@ -86,6 +86,4 @@ TESTS_SUBDIRS+= aggs \
 .PATH:		${.CURDIR:H:H:H:H:H}/tests
 KYUAFILE=	YES
 
-SUBDIR_PARALLEL=
-
 .include <bsd.test.mk>

Modified: stable/10/share/mk/bsd.test.mk
==============================================================================
--- stable/10/share/mk/bsd.test.mk	Thu Feb 16 05:14:07 2017	(r313790)
+++ stable/10/share/mk/bsd.test.mk	Thu Feb 16 05:17:40 2017	(r313791)
@@ -76,6 +76,7 @@ _TESTS=
 SUBDIR+= ${ts}
 .endif
 .endfor
+SUBDIR_PARALLEL= t
 .endif
 
 # it is rare for test cases to have man pages

Modified: stable/10/tests/sys/Makefile
==============================================================================
--- stable/10/tests/sys/Makefile	Thu Feb 16 05:14:07 2017	(r313790)
+++ stable/10/tests/sys/Makefile	Thu Feb 16 05:17:40 2017	(r313791)
@@ -22,6 +22,4 @@ TESTS_SUBDIRS+=		vm
 # Items not integrated into kyua runs by default
 SUBDIR+=		pjdfstest
 
-SUBDIR_PARALLEL=
-
 .include <bsd.test.mk>

Modified: stable/10/tests/sys/pjdfstest/tests/Makefile
==============================================================================
--- stable/10/tests/sys/pjdfstest/tests/Makefile	Thu Feb 16 05:14:07 2017	(r313790)
+++ stable/10/tests/sys/pjdfstest/tests/Makefile	Thu Feb 16 05:17:40 2017	(r313791)
@@ -36,6 +36,4 @@ TESTS_SUBDIRS+=	symlink
 TESTS_SUBDIRS+=	truncate
 TESTS_SUBDIRS+=	unlink
 
-SUBDIR_PARALLEL=
-
 .include <bsd.test.mk>

Copied: stable/10/usr.bin/bmake/tests/Makefile.inc (from r295643, head/usr.bin/bmake/tests/Makefile.inc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/usr.bin/bmake/tests/Makefile.inc	Thu Feb 16 05:17:40 2017	(r313791, copy of r295643, head/usr.bin/bmake/tests/Makefile.inc)
@@ -0,0 +1,3 @@
+# $FreeBSD$
+
+SUBDIR_PARALLEL= t

From owner-svn-src-stable@freebsd.org  Thu Feb 16 05:22:10 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4006CCE13A2;
 Thu, 16 Feb 2017 05:22:10 +0000 (UTC)
 (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 08E88D40;
 Thu, 16 Feb 2017 05:22:09 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G5M9Y2038244;
 Thu, 16 Feb 2017 05:22:09 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G5M9Xg038243;
 Thu, 16 Feb 2017 05:22:09 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201702160522.v1G5M9Xg038243@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 16 Feb 2017 05:22:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313792 - stable/10/share/mk
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 05:22:10 -0000

Author: ngie
Date: Thu Feb 16 05:22:08 2017
New Revision: 313792
URL: https://svnweb.freebsd.org/changeset/base/313792

Log:
  Fix mismerge in r313790
  
  Use ${.TARGET}, not Kyuafile.auto* for the fmake case
  
  This is a direct commit to ^/stable/10
  
  Sponsored by:	Dell EMC Isilon

Modified:
  stable/10/share/mk/suite.test.mk

Modified: stable/10/share/mk/suite.test.mk
==============================================================================
--- stable/10/share/mk/suite.test.mk	Thu Feb 16 05:17:40 2017	(r313791)
+++ stable/10/share/mk/suite.test.mk	Thu Feb 16 05:22:08 2017	(r313792)
@@ -71,7 +71,7 @@ Kyuafile: Makefile
 	    >>${.TARGET}.tmp
 .else
 	@echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${_TEST_METADATA.${_T}:C/^/, /:Q:S/\\ ,/,/g:S,\\,,g}}' \
-	    >>Kyuafile.auto.tmp
+	    >>${.TARGET}.tmp
 .endif
 .endfor
 .for _T in ${TESTS_SUBDIRS:N.WAIT}

From owner-svn-src-stable@freebsd.org  Thu Feb 16 05:57:59 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC914CE1B74;
 Thu, 16 Feb 2017 05:57:59 +0000 (UTC) (envelope-from kib@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 mx1.freebsd.org (Postfix) with ESMTPS id 69C0918F2;
 Thu, 16 Feb 2017 05:57:59 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G5vwaX050668;
 Thu, 16 Feb 2017 05:57:58 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G5vwJB050667;
 Thu, 16 Feb 2017 05:57:58 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201702160557.v1G5vwJB050667@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Thu, 16 Feb 2017 05:57:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313793 - stable/11/sys/compat/freebsd32
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 05:57:59 -0000

Author: kib
Date: Thu Feb 16 05:57:58 2017
New Revision: 313793
URL: https://svnweb.freebsd.org/changeset/base/313793

Log:
  MFC r313692:
  Style: wrap long line.

Modified:
  stable/11/sys/compat/freebsd32/freebsd32_misc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- stable/11/sys/compat/freebsd32/freebsd32_misc.c	Thu Feb 16 05:22:08 2017	(r313792)
+++ stable/11/sys/compat/freebsd32/freebsd32_misc.c	Thu Feb 16 05:57:58 2017	(r313793)
@@ -489,7 +489,8 @@ freebsd32_mmap(struct thread *td, struct
 
 #ifdef COMPAT_FREEBSD6
 int
-freebsd6_freebsd32_mmap(struct thread *td, struct freebsd6_freebsd32_mmap_args *uap)
+freebsd6_freebsd32_mmap(struct thread *td,
+    struct freebsd6_freebsd32_mmap_args *uap)
 {
 	struct freebsd32_mmap_args ap;
 

From owner-svn-src-stable@freebsd.org  Thu Feb 16 06:00:59 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B025CE1C50;
 Thu, 16 Feb 2017 06:00:59 +0000 (UTC) (envelope-from kib@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 mx1.freebsd.org (Postfix) with ESMTPS id D03EB1AE1;
 Thu, 16 Feb 2017 06:00:58 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G60vvN050864;
 Thu, 16 Feb 2017 06:00:57 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G60vjo050863;
 Thu, 16 Feb 2017 06:00:57 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201702160600.v1G60vjo050863@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Thu, 16 Feb 2017 06:00:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313794 - stable/10/sys/compat/freebsd32
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 06:00:59 -0000

Author: kib
Date: Thu Feb 16 06:00:57 2017
New Revision: 313794
URL: https://svnweb.freebsd.org/changeset/base/313794

Log:
  MFC r313692:
  Style: wrap long line.

Modified:
  stable/10/sys/compat/freebsd32/freebsd32_misc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- stable/10/sys/compat/freebsd32/freebsd32_misc.c	Thu Feb 16 05:57:58 2017	(r313793)
+++ stable/10/sys/compat/freebsd32/freebsd32_misc.c	Thu Feb 16 06:00:57 2017	(r313794)
@@ -598,7 +598,8 @@ freebsd32_mmap(struct thread *td, struct
 
 #ifdef COMPAT_FREEBSD6
 int
-freebsd6_freebsd32_mmap(struct thread *td, struct freebsd6_freebsd32_mmap_args *uap)
+freebsd6_freebsd32_mmap(struct thread *td,
+    struct freebsd6_freebsd32_mmap_args *uap)
 {
 	struct freebsd32_mmap_args ap;
 

From owner-svn-src-stable@freebsd.org  Thu Feb 16 06:16:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D10ECE12E4;
 Thu, 16 Feb 2017 06:16:25 +0000 (UTC)
 (envelope-from delphij@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 mx1.freebsd.org (Postfix) with ESMTPS id E987975D;
 Thu, 16 Feb 2017 06:16:24 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G6GOn7058945;
 Thu, 16 Feb 2017 06:16:24 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G6GNaj058937;
 Thu, 16 Feb 2017 06:16:23 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201702160616.v1G6GNaj058937@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Thu, 16 Feb 2017 06:16:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313795 - in stable/11: contrib/zlib contrib/zlib/contrib
 contrib/zlib/test lib/libz
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 06:16:25 -0000

Author: delphij
Date: Thu Feb 16 06:16:23 2017
New Revision: 313795
URL: https://svnweb.freebsd.org/changeset/base/313795

Log:
  MFC r311285,312335: zlib 1.2.11.

Modified:
  stable/11/contrib/zlib/ChangeLog
  stable/11/contrib/zlib/README
  stable/11/contrib/zlib/adler32.c
  stable/11/contrib/zlib/compress.c
  stable/11/contrib/zlib/contrib/README.contrib
  stable/11/contrib/zlib/crc32.c
  stable/11/contrib/zlib/deflate.c
  stable/11/contrib/zlib/deflate.h
  stable/11/contrib/zlib/gzguts.h
  stable/11/contrib/zlib/gzlib.c
  stable/11/contrib/zlib/gzread.c
  stable/11/contrib/zlib/gzwrite.c
  stable/11/contrib/zlib/infback.c
  stable/11/contrib/zlib/inffast.c
  stable/11/contrib/zlib/inflate.c
  stable/11/contrib/zlib/inflate.h
  stable/11/contrib/zlib/inftrees.c
  stable/11/contrib/zlib/test/example.c
  stable/11/contrib/zlib/test/infcover.c
  stable/11/contrib/zlib/test/minigzip.c
  stable/11/contrib/zlib/trees.c
  stable/11/contrib/zlib/uncompr.c
  stable/11/contrib/zlib/zconf.h
  stable/11/contrib/zlib/zconf.h.in
  stable/11/contrib/zlib/zlib.3
  stable/11/contrib/zlib/zlib.h
  stable/11/contrib/zlib/zlib.map
  stable/11/contrib/zlib/zutil.c
  stable/11/contrib/zlib/zutil.h
  stable/11/lib/libz/Symbol.map
  stable/11/lib/libz/Versions.def
  stable/11/lib/libz/zlib.pc
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/zlib/ChangeLog
==============================================================================
--- stable/11/contrib/zlib/ChangeLog	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/ChangeLog	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,10 +1,53 @@
 
                 ChangeLog file for zlib
 
+Changes in 1.2.11 (15 Jan 2017)
+- Fix deflate stored bug when pulling last block from window
+- Permit immediate deflateParams changes before any deflate input
+
+Changes in 1.2.10 (2 Jan 2017)
+- Avoid warnings on snprintf() return value
+- Fix bug in deflate_stored() for zero-length input
+- Fix bug in gzwrite.c that produced corrupt gzip files
+- Remove files to be installed before copying them in Makefile.in
+- Add warnings when compiling with assembler code
+
+Changes in 1.2.9 (31 Dec 2016)
+- Fix contrib/minizip to permit unzipping with desktop API [Zouzou]
+- Improve contrib/blast to return unused bytes
+- Assure that gzoffset() is correct when appending
+- Improve compress() and uncompress() to support large lengths
+- Fix bug in test/example.c where error code not saved
+- Remedy Coverity warning [Randers-Pehrson]
+- Improve speed of gzprintf() in transparent mode
+- Fix inflateInit2() bug when windowBits is 16 or 32
+- Change DEBUG macro to ZLIB_DEBUG
+- Avoid uninitialized access by gzclose_w()
+- Allow building zlib outside of the source directory
+- Fix bug that accepted invalid zlib header when windowBits is zero
+- Fix gzseek() problem on MinGW due to buggy _lseeki64 there
+- Loop on write() calls in gzwrite.c in case of non-blocking I/O
+- Add --warn (-w) option to ./configure for more compiler warnings
+- Reject a window size of 256 bytes if not using the zlib wrapper
+- Fix bug when level 0 used with Z_HUFFMAN or Z_RLE
+- Add --debug (-d) option to ./configure to define ZLIB_DEBUG
+- Fix bugs in creating a very large gzip header
+- Add uncompress2() function, which returns the input size used
+- Assure that deflateParams() will not switch functions mid-block
+- Dramatically speed up deflation for level 0 (storing)
+- Add gzfread(), duplicating the interface of fread()
+- Add gzfwrite(), duplicating the interface of fwrite()
+- Add deflateGetDictionary() function
+- Use snprintf() for later versions of Microsoft C
+- Fix *Init macros to use z_ prefix when requested
+- Replace as400 with os400 for OS/400 support [Monnerat]
+- Add crc32_z() and adler32_z() functions with size_t lengths
+- Update Visual Studio project files [AraHaan]
+
 Changes in 1.2.8 (28 Apr 2013)
 - Update contrib/minizip/iowin32.c for Windows RT [Vollant]
 - Do not force Z_CONST for C++
-- Clean up contrib/vstudio [Ro§]
+- Clean up contrib/vstudio [Roß]
 - Correct spelling error in zlib.h
 - Fix mixed line endings in contrib/vstudio
 
@@ -34,7 +77,7 @@ Changes in 1.2.7.1 (24 Mar 2013)
 - Clean up the usage of z_const and respect const usage within zlib
 - Clean up examples/gzlog.[ch] comparisons of different types
 - Avoid shift equal to bits in type (caused endless loop)
-- Fix unintialized value bug in gzputc() introduced by const patches
+- Fix uninitialized value bug in gzputc() introduced by const patches
 - Fix memory allocation error in examples/zran.c [Nor]
 - Fix bug where gzopen(), gzclose() would write an empty file
 - Fix bug in gzclose() when gzwrite() runs out of memory
@@ -194,7 +237,7 @@ Changes in 1.2.5.2 (17 Dec 2011)
 - Add a transparent write mode to gzopen() when 'T' is in the mode
 - Update python link in zlib man page
 - Get inffixed.h and MAKEFIXED result to match
-- Add a ./config --solo option to make zlib subset with no libary use
+- Add a ./config --solo option to make zlib subset with no library use
 - Add undocumented inflateResetKeep() function for CAB file decoding
 - Add --cover option to ./configure for gcc coverage testing
 - Add #define ZLIB_CONST option to use const in the z_stream interface
@@ -564,7 +607,7 @@ Changes in 1.2.3.1 (16 August 2006)
 - Update make_vms.com [Zinser]
 - Use -fPIC for shared build in configure [Teredesai, Nicholson]
 - Use only major version number for libz.so on IRIX and OSF1 [Reinholdtsen]
-- Use fdopen() (not _fdopen()) for Interix in zutil.h [BŠck]
+- Use fdopen() (not _fdopen()) for Interix in zutil.h [Bäck]
 - Add some FAQ entries about the contrib directory
 - Update the MVS question in the FAQ
 - Avoid extraneous reads after EOF in gzio.c [Brown]
@@ -1178,7 +1221,7 @@ Changes in 1.0.6 (19 Jan 1998)
         386 asm code replacing longest_match().
    contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
         A C++ I/O streams interface to the zlib gz* functions
-   contrib/iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
+   contrib/iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
         Another C++ I/O streams interface
    contrib/untgz/  by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
         A very simple tar.gz file extractor using zlib
@@ -1267,7 +1310,7 @@ Changes in 1.0.1 (20 May 96) [1.0 skippe
 - fix array overlay in deflate.c which sometimes caused bad compressed data
 - fix inflate bug with empty stored block
 - fix MSDOS medium model which was broken in 0.99
-- fix deflateParams() which could generated bad compressed data.
+- fix deflateParams() which could generate bad compressed data.
 - Bytef is define'd instead of typedef'ed (work around Borland bug)
 - added an INDEX file
 - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),

Modified: stable/11/contrib/zlib/README
==============================================================================
--- stable/11/contrib/zlib/README	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/README	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,6 +1,6 @@
 ZLIB DATA COMPRESSION LIBRARY
 
-zlib 1.2.8 is a general purpose data compression library.  All the code is
+zlib 1.2.11 is a general purpose data compression library.  All the code is
 thread safe.  The data format used by the zlib library is described by RFCs
 (Request for Comments) 1950 to 1952 in the files
 http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
@@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an ar
 issue of Dr.  Dobb's Journal; a copy of the article is available at
 http://marknelson.us/1997/01/01/zlib-engine/ .
 
-The changes made in version 1.2.8 are documented in the file ChangeLog.
+The changes made in version 1.2.11 are documented in the file ChangeLog.
 
 Unsupported third party contributions are provided in directory contrib/ .
 
@@ -84,7 +84,7 @@ Acknowledgments:
 
 Copyright notice:
 
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
 
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages

Modified: stable/11/contrib/zlib/adler32.c
==============================================================================
--- stable/11/contrib/zlib/adler32.c	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/adler32.c	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,5 +1,5 @@
 /* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
+ * Copyright (C) 1995-2011, 2016 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -7,11 +7,9 @@
 
 #include "zutil.h"
 
-#define local static
-
 local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
 
-#define BASE 65521      /* largest prime smaller than 65536 */
+#define BASE 65521U     /* largest prime smaller than 65536 */
 #define NMAX 5552
 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
 
@@ -62,10 +60,10 @@ local uLong adler32_combine_ OF((uLong a
 #endif
 
 /* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
+uLong ZEXPORT adler32_z(adler, buf, len)
     uLong adler;
     const Bytef *buf;
-    uInt len;
+    z_size_t len;
 {
     unsigned long sum2;
     unsigned n;
@@ -133,6 +131,15 @@ uLong ZEXPORT adler32(adler, buf, len)
 }
 
 /* ========================================================================= */
+uLong ZEXPORT adler32(adler, buf, len)
+    uLong adler;
+    const Bytef *buf;
+    uInt len;
+{
+    return adler32_z(adler, buf, len);
+}
+
+/* ========================================================================= */
 local uLong adler32_combine_(adler1, adler2, len2)
     uLong adler1;
     uLong adler2;
@@ -156,7 +163,7 @@ local uLong adler32_combine_(adler1, adl
     sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
     if (sum1 >= BASE) sum1 -= BASE;
     if (sum1 >= BASE) sum1 -= BASE;
-    if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
+    if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1);
     if (sum2 >= BASE) sum2 -= BASE;
     return sum1 | (sum2 << 16);
 }

Modified: stable/11/contrib/zlib/compress.c
==============================================================================
--- stable/11/contrib/zlib/compress.c	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/compress.c	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,5 +1,5 @@
 /* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
+ * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -28,16 +28,11 @@ int ZEXPORT compress2 (dest, destLen, so
 {
     z_stream stream;
     int err;
+    const uInt max = (uInt)-1;
+    uLong left;
 
-    stream.next_in = (z_const Bytef *)source;
-    stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+    left = *destLen;
+    *destLen = 0;
 
     stream.zalloc = (alloc_func)0;
     stream.zfree = (free_func)0;
@@ -46,15 +41,26 @@ int ZEXPORT compress2 (dest, destLen, so
     err = deflateInit(&stream, level);
     if (err != Z_OK) return err;
 
-    err = deflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        deflateEnd(&stream);
-        return err == Z_OK ? Z_BUF_ERROR : err;
-    }
-    *destLen = stream.total_out;
+    stream.next_out = dest;
+    stream.avail_out = 0;
+    stream.next_in = (z_const Bytef *)source;
+    stream.avail_in = 0;
+
+    do {
+        if (stream.avail_out == 0) {
+            stream.avail_out = left > (uLong)max ? max : (uInt)left;
+            left -= stream.avail_out;
+        }
+        if (stream.avail_in == 0) {
+            stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
+            sourceLen -= stream.avail_in;
+        }
+        err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
+    } while (err == Z_OK);
 
-    err = deflateEnd(&stream);
-    return err;
+    *destLen = stream.total_out;
+    deflateEnd(&stream);
+    return err == Z_STREAM_END ? Z_OK : err;
 }
 
 /* ===========================================================================

Modified: stable/11/contrib/zlib/contrib/README.contrib
==============================================================================
--- stable/11/contrib/zlib/contrib/README.contrib	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/contrib/README.contrib	Thu Feb 16 06:16:23 2017	(r313795)
@@ -38,7 +38,7 @@ inflate86/  by Chris Anderson <christop@
 iostream/   by Kevin Ruland <kevin@rodin.wustl.edu>
         A C++ I/O streams interface to the zlib gz* functions
 
-iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
+iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
         Another C++ I/O streams interface
 
 iostream3/  by Ludwig Schwardt <schwardt@sun.ac.za>
@@ -58,7 +58,7 @@ masmx86/    by Gilles Vollant <info@wini
 minizip/    by Gilles Vollant <info@winimage.com>
         Mini zip and unzip based on zlib
         Includes Zip64 support by Mathias Svensson <mathias@result42.com>
-        See http://www.winimage.com/zLibDll/unzip.html
+        See http://www.winimage.com/zLibDll/minizip.html
 
 pascal/     by Bob Dellaca <bobdl@xtra.co.nz> et al.
         Support for Pascal

Modified: stable/11/contrib/zlib/crc32.c
==============================================================================
--- stable/11/contrib/zlib/crc32.c	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/crc32.c	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,5 +1,5 @@
 /* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
+ * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  *
  * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
@@ -30,17 +30,15 @@
 
 #include "zutil.h"      /* for STDC and FAR definitions */
 
-#define local static
-
 /* Definitions for doing the crc four data bytes at a time. */
 #if !defined(NOBYFOUR) && defined(Z_U4)
 #  define BYFOUR
 #endif
 #ifdef BYFOUR
    local unsigned long crc32_little OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
+                        const unsigned char FAR *, z_size_t));
    local unsigned long crc32_big OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
+                        const unsigned char FAR *, z_size_t));
 #  define TBLS 8
 #else
 #  define TBLS 1
@@ -201,10 +199,10 @@ const z_crc_t FAR * ZEXPORT get_crc_tabl
 #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
 
 /* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
+unsigned long ZEXPORT crc32_z(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    uInt len;
+    z_size_t len;
 {
     if (buf == Z_NULL) return 0UL;
 
@@ -235,8 +233,29 @@ unsigned long ZEXPORT crc32(crc, buf, le
     return crc ^ 0xffffffffUL;
 }
 
+/* ========================================================================= */
+unsigned long ZEXPORT crc32(crc, buf, len)
+    unsigned long crc;
+    const unsigned char FAR *buf;
+    uInt len;
+{
+    return crc32_z(crc, buf, len);
+}
+
 #ifdef BYFOUR
 
+/*
+   This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit
+   integer pointer type. This violates the strict aliasing rule, where a
+   compiler can assume, for optimization purposes, that two pointers to
+   fundamentally different types won't ever point to the same memory. This can
+   manifest as a problem only if one of the pointers is written to. This code
+   only reads from those pointers. So long as this code remains isolated in
+   this compilation unit, there won't be a problem. For this reason, this code
+   should not be copied and pasted into a compilation unit in which other code
+   writes to the buffer that is passed to these routines.
+ */
+
 /* ========================================================================= */
 #define DOLIT4 c ^= *buf4++; \
         c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
@@ -247,7 +266,7 @@ unsigned long ZEXPORT crc32(crc, buf, le
 local unsigned long crc32_little(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    unsigned len;
+    z_size_t len;
 {
     register z_crc_t c;
     register const z_crc_t FAR *buf4;
@@ -278,7 +297,7 @@ local unsigned long crc32_little(crc, bu
 }
 
 /* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
+#define DOBIG4 c ^= *buf4++; \
         c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
             crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
 #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
@@ -287,7 +306,7 @@ local unsigned long crc32_little(crc, bu
 local unsigned long crc32_big(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    unsigned len;
+    z_size_t len;
 {
     register z_crc_t c;
     register const z_crc_t FAR *buf4;
@@ -300,7 +319,6 @@ local unsigned long crc32_big(crc, buf, 
     }
 
     buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    buf4--;
     while (len >= 32) {
         DOBIG32;
         len -= 32;
@@ -309,7 +327,6 @@ local unsigned long crc32_big(crc, buf, 
         DOBIG4;
         len -= 4;
     }
-    buf4++;
     buf = (const unsigned char FAR *)buf4;
 
     if (len) do {

Modified: stable/11/contrib/zlib/deflate.c
==============================================================================
--- stable/11/contrib/zlib/deflate.c	Thu Feb 16 06:00:57 2017	(r313794)
+++ stable/11/contrib/zlib/deflate.c	Thu Feb 16 06:16:23 2017	(r313795)
@@ -1,5 +1,5 @@
 /* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -52,7 +52,7 @@
 #include "deflate.h"
 
 const char deflate_copyright[] =
-   " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler ";
+   " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -73,6 +73,8 @@ typedef enum {
 typedef block_state (*compress_func) OF((deflate_state *s, int flush));
 /* Compression function. Returns the block state after the call. */
 
+local int deflateStateCheck      OF((z_streamp strm));
+local void slide_hash     OF((deflate_state *s));
 local void fill_window    OF((deflate_state *s));
 local block_state deflate_stored OF((deflate_state *s, int flush));
 local block_state deflate_fast   OF((deflate_state *s, int flush));
@@ -84,15 +86,16 @@ local block_state deflate_huff   OF((def
 local void lm_init        OF((deflate_state *s));
 local void putShortMSB    OF((deflate_state *s, uInt b));
 local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
+local unsigned read_buf   OF((z_streamp strm, Bytef *buf, unsigned size));
 #ifdef ASMV
+#  pragma message("Assembler code may have bugs -- use at your own risk")
       void match_init OF((void)); /* asm code initialization */
       uInt longest_match  OF((deflate_state *s, IPos cur_match));
 #else
 local uInt longest_match  OF((deflate_state *s, IPos cur_match));
 #endif
 
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
 local  void check_match OF((deflate_state *s, IPos start, IPos match,
                             int length));
 #endif
@@ -148,21 +151,14 @@ local const config configuration_table[1
  * meaning.
  */
 
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
 /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
-#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0))
+#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0))
 
 /* ===========================================================================
  * Update a hash value with the given input byte
- * IN  assertion: all calls to to UPDATE_HASH are made with consecutive
- *    input characters, so that a running hash key can be computed from the
- *    previous key instead of complete recalculation each time.
+ * IN  assertion: all calls to UPDATE_HASH are made with consecutive input
+ *    characters, so that a running hash key can be computed from the previous
+ *    key instead of complete recalculation each time.
  */
 #define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
 
@@ -173,9 +169,9 @@ struct static_tree_desc_s {int dummy;}; 
  * the previous length of the hash chain.
  * If this file is compiled with -DFASTEST, the compression level is forced
  * to 1, and no hash chains are maintained.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of str are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
+ * IN  assertion: all calls to INSERT_STRING are made with consecutive input
+ *    characters and the first MIN_MATCH bytes of str are valid (except for
+ *    the last MIN_MATCH-1 bytes of the input file).
  */
 #ifdef FASTEST
 #define INSERT_STRING(s, str, match_head) \
@@ -197,6 +193,37 @@ struct static_tree_desc_s {int dummy;}; 
     s->head[s->hash_size-1] = NIL; \
     zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
 
+/* ===========================================================================
+ * Slide the hash table when sliding the window down (could be avoided with 32
+ * bit values at the expense of memory usage). We slide even when level == 0 to
+ * keep the hash table consistent if we switch back to level > 0 later.
+ */
+local void slide_hash(s)
+    deflate_state *s;
+{
+    unsigned n, m;
+    Posf *p;
+    uInt wsize = s->w_size;
+
+    n = s->hash_size;
+    p = &s->head[n];
+    do {
+        m = *--p;
+        *p = (Pos)(m >= wsize ? m - wsize : NIL);
+    } while (--n);
+    n = wsize;
+#ifndef FASTEST
+    p = &s->prev[n];
+    do {
+        m = *--p;
+        *p = (Pos)(m >= wsize ? m - wsize : NIL);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+    } while (--n);
+#endif
+}
+
 /* ========================================================================= */
 int ZEXPORT deflateInit_(strm, level, version, stream_size)
     z_streamp strm;
@@ -270,7 +297,7 @@ int ZEXPORT deflateInit2_(strm, level, m
 #endif
     if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
         windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
-        strategy < 0 || strategy > Z_FIXED) {
+        strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) {
         return Z_STREAM_ERROR;
     }
     if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */
@@ -278,14 +305,15 @@ int ZEXPORT deflateInit2_(strm, level, m
     if (s == Z_NULL) return Z_MEM_ERROR;
     strm->state = (struct internal_state FAR *)s;
     s->strm = strm;
+    s->status = INIT_STATE;     /* to pass state test in deflateReset() */
 
     s->wrap = wrap;
     s->gzhead = Z_NULL;
-    s->w_bits = windowBits;
+    s->w_bits = (uInt)windowBits;
     s->w_size = 1 << s->w_bits;
     s->w_mask = s->w_size - 1;
 
-    s->hash_bits = memLevel + 7;
+    s->hash_bits = (uInt)memLevel + 7;
     s->hash_size = 1 << s->hash_bits;
     s->hash_mask = s->hash_size - 1;
     s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
@@ -319,6 +347,31 @@ int ZEXPORT deflateInit2_(strm, level, m
     return deflateReset(strm);
 }
 
+/* =========================================================================
+ * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
+ */
+local int deflateStateCheck (strm)
+    z_streamp strm;
+{
+    deflate_state *s;
+    if (strm == Z_NULL ||
+        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+        return 1;
+    s = strm->state;
+    if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE &&
+#ifdef GZIP
+                                           s->status != GZIP_STATE &&
+#endif
+                                           s->status != EXTRA_STATE &&
+                                           s->status != NAME_STATE &&
+                                           s->status != COMMENT_STATE &&
+                                           s->status != HCRC_STATE &&
+                                           s->status != BUSY_STATE &&
+                                           s->status != FINISH_STATE))
+        return 1;
+    return 0;
+}
+
 /* ========================================================================= */
 int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
     z_streamp strm;
@@ -331,7 +384,7 @@ int ZEXPORT deflateSetDictionary (strm, 
     unsigned avail;
     z_const unsigned char *next;
 
-    if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
+    if (deflateStateCheck(strm) || dictionary == Z_NULL)
         return Z_STREAM_ERROR;
     s = strm->state;
     wrap = s->wrap;
@@ -389,13 +442,34 @@ int ZEXPORT deflateSetDictionary (strm, 
 }
 
 /* ========================================================================= */
+int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength)
+    z_streamp strm;
+    Bytef *dictionary;
+    uInt  *dictLength;
+{
+    deflate_state *s;
+    uInt len;
+
+    if (deflateStateCheck(strm))
+        return Z_STREAM_ERROR;
+    s = strm->state;
+    len = s->strstart + s->lookahead;
+    if (len > s->w_size)
+        len = s->w_size;
+    if (dictionary != Z_NULL && len)
+        zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len);
+    if (dictLength != Z_NULL)
+        *dictLength = len;
+    return Z_OK;
+}
+
+/* ========================================================================= */
 int ZEXPORT deflateResetKeep (strm)
     z_streamp strm;
 {
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
+    if (deflateStateCheck(strm)) {
         return Z_STREAM_ERROR;
     }
 
@@ -410,7 +484,11 @@ int ZEXPORT deflateResetKeep (strm)
     if (s->wrap < 0) {
         s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
     }
-    s->status = s->wrap ? INIT_STATE : BUSY_STATE;
+    s->status =
+#ifdef GZIP
+        s->wrap == 2 ? GZIP_STATE :
+#endif
+        s->wrap ? INIT_STATE : BUSY_STATE;
     strm->adler =
 #ifdef GZIP
         s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
@@ -440,8 +518,8 @@ int ZEXPORT deflateSetHeader (strm, head
     z_streamp strm;
     gz_headerp head;
 {
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (strm->state->wrap != 2) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm) || strm->state->wrap != 2)
+        return Z_STREAM_ERROR;
     strm->state->gzhead = head;
     return Z_OK;
 }
@@ -452,7 +530,7 @@ int ZEXPORT deflatePending (strm, pendin
     int *bits;
     z_streamp strm;
 {
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     if (pending != Z_NULL)
         *pending = strm->state->pending;
     if (bits != Z_NULL)
@@ -469,7 +547,7 @@ int ZEXPORT deflatePrime (strm, bits, va
     deflate_state *s;
     int put;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
     if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
         return Z_BUF_ERROR;
@@ -494,9 +572,8 @@ int ZEXPORT deflateParams(strm, level, s
 {
     deflate_state *s;
     compress_func func;
-    int err = Z_OK;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
 
 #ifdef FASTEST
@@ -510,13 +587,22 @@ int ZEXPORT deflateParams(strm, level, s
     func = configuration_table[s->level].func;
 
     if ((strategy != s->strategy || func != configuration_table[level].func) &&
-        strm->total_in != 0) {
+        s->high_water) {
         /* Flush the last buffer: */
-        err = deflate(strm, Z_BLOCK);
-        if (err == Z_BUF_ERROR && s->pending == 0)
-            err = Z_OK;
+        int err = deflate(strm, Z_BLOCK);
+        if (err == Z_STREAM_ERROR)
+            return err;
+        if (strm->avail_out == 0)
+            return Z_BUF_ERROR;
     }
     if (s->level != level) {
+        if (s->level == 0 && s->matches != 0) {
+            if (s->matches == 1)
+                slide_hash(s);
+            else
+                CLEAR_HASH(s);
+            s->matches = 0;
+        }
         s->level = level;
         s->max_lazy_match   = configuration_table[level].max_lazy;
         s->good_match       = configuration_table[level].good_length;
@@ -524,7 +610,7 @@ int ZEXPORT deflateParams(strm, level, s
         s->max_chain_length = configuration_table[level].max_chain;
     }
     s->strategy = strategy;
-    return err;
+    return Z_OK;
 }
 
 /* ========================================================================= */
@@ -537,12 +623,12 @@ int ZEXPORT deflateTune(strm, good_lengt
 {
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
-    s->good_match = good_length;
-    s->max_lazy_match = max_lazy;
+    s->good_match = (uInt)good_length;
+    s->max_lazy_match = (uInt)max_lazy;
     s->nice_match = nice_length;
-    s->max_chain_length = max_chain;
+    s->max_chain_length = (uInt)max_chain;
     return Z_OK;
 }
 
@@ -569,14 +655,13 @@ uLong ZEXPORT deflateBound(strm, sourceL
 {
     deflate_state *s;
     uLong complen, wraplen;
-    Bytef *str;
 
     /* conservative upper bound for compressed data */
     complen = sourceLen +
               ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
 
     /* if can't get parameters, return conservative bound plus zlib wrapper */
-    if (strm == Z_NULL || strm->state == Z_NULL)
+    if (deflateStateCheck(strm))
         return complen + 6;
 
     /* compute wrapper length */
@@ -588,9 +673,11 @@ uLong ZEXPORT deflateBound(strm, sourceL
     case 1:                                 /* zlib wrapper */
         wraplen = 6 + (s->strstart ? 4 : 0);
         break;
+#ifdef GZIP
     case 2:                                 /* gzip wrapper */
         wraplen = 18;
         if (s->gzhead != Z_NULL) {          /* user-supplied gzip header */
+            Bytef *str;
             if (s->gzhead->extra != Z_NULL)
                 wraplen += 2 + s->gzhead->extra_len;
             str = s->gzhead->name;
@@ -607,6 +694,7 @@ uLong ZEXPORT deflateBound(strm, sourceL
                 wraplen += 2;
         }
         break;
+#endif
     default:                                /* for compiler happiness */
         wraplen = 6;
     }
@@ -634,10 +722,10 @@ local void putShortMSB (s, b)
 }
 
 /* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
+ * Flush as much pending output as possible. All deflate() output, except for
+ * some deflate_stored() output, goes through this function so some
+ * applications may wish to modify it to avoid allocating a large
+ * strm->next_out buffer and copying into it. (See also read_buf()).
  */
 local void flush_pending(strm)
     z_streamp strm;
@@ -654,13 +742,23 @@ local void flush_pending(strm)
     strm->next_out  += len;
     s->pending_out  += len;
     strm->total_out += len;
-    strm->avail_out  -= len;
-    s->pending -= len;
+    strm->avail_out -= len;
+    s->pending      -= len;
     if (s->pending == 0) {
         s->pending_out = s->pending_buf;
     }
 }
 
+/* ===========================================================================
+ * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
+ */
+#define HCRC_UPDATE(beg) \
+    do { \
+        if (s->gzhead->hcrc && s->pending > (beg)) \
+            strm->adler = crc32(strm->adler, s->pending_buf + (beg), \
+                                s->pending - (beg)); \
+    } while (0)
+
 /* ========================================================================= */
 int ZEXPORT deflate (strm, flush)
     z_streamp strm;
@@ -669,230 +767,229 @@ int ZEXPORT deflate (strm, flush)
     int old_flush; /* value of flush param for previous deflate call */
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        flush > Z_BLOCK || flush < 0) {
+    if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
         return Z_STREAM_ERROR;
     }
     s = strm->state;
 
     if (strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0) ||
+        (strm->avail_in != 0 && strm->next_in == Z_NULL) ||
         (s->status == FINISH_STATE && flush != Z_FINISH)) {
         ERR_RETURN(strm, Z_STREAM_ERROR);
     }
     if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
 
-    s->strm = strm; /* just in case */
     old_flush = s->last_flush;
     s->last_flush = flush;
 
+    /* Flush as much pending output as possible */
+    if (s->pending != 0) {
+        flush_pending(strm);
+        if (strm->avail_out == 0) {
+            /* Since avail_out is 0, deflate will be called again with
+             * more output space, but possibly with both pending and
+             * avail_in equal to zero. There won't be anything to do,
+             * but this is not an error situation so make sure we
+             * return OK instead of BUF_ERROR at next call of deflate:
+             */
+            s->last_flush = -1;
+            return Z_OK;
+        }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+    } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
+               flush != Z_FINISH) {
+        ERR_RETURN(strm, Z_BUF_ERROR);
+    }
+
+    /* User must not provide more input after the first FINISH: */
+    if (s->status == FINISH_STATE && strm->avail_in != 0) {
+        ERR_RETURN(strm, Z_BUF_ERROR);
+    }
+
     /* Write the header */
     if (s->status == INIT_STATE) {
-#ifdef GZIP
-        if (s->wrap == 2) {
-            strm->adler = crc32(0L, Z_NULL, 0);
-            put_byte(s, 31);
-            put_byte(s, 139);
-            put_byte(s, 8);
-            if (s->gzhead == Z_NULL) {
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, OS_CODE);
-                s->status = BUSY_STATE;
-            }
-            else {
-                put_byte(s, (s->gzhead->text ? 1 : 0) +
-                            (s->gzhead->hcrc ? 2 : 0) +
-                            (s->gzhead->extra == Z_NULL ? 0 : 4) +
-                            (s->gzhead->name == Z_NULL ? 0 : 8) +
-                            (s->gzhead->comment == Z_NULL ? 0 : 16)
-                        );
-                put_byte(s, (Byte)(s->gzhead->time & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, s->gzhead->os & 0xff);
-                if (s->gzhead->extra != Z_NULL) {
-                    put_byte(s, s->gzhead->extra_len & 0xff);
-                    put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
-                }
-                if (s->gzhead->hcrc)
-                    strm->adler = crc32(strm->adler, s->pending_buf,
-                                        s->pending);
-                s->gzindex = 0;
-                s->status = EXTRA_STATE;
-            }
-        }
+        /* zlib header */
+        uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+        uInt level_flags;
+
+        if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
+            level_flags = 0;
+        else if (s->level < 6)
+            level_flags = 1;
+        else if (s->level == 6)
+            level_flags = 2;
         else
-#endif
-        {
-            uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-            uInt level_flags;
-
-            if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
-                level_flags = 0;
-            else if (s->level < 6)
-                level_flags = 1;
-            else if (s->level == 6)
-                level_flags = 2;
-            else
-                level_flags = 3;
-            header |= (level_flags << 6);
-            if (s->strstart != 0) header |= PRESET_DICT;
-            header += 31 - (header % 31);
+            level_flags = 3;
+        header |= (level_flags << 6);
+        if (s->strstart != 0) header |= PRESET_DICT;
+        header += 31 - (header % 31);
+
+        putShortMSB(s, header);
+
+        /* Save the adler32 of the preset dictionary: */
+        if (s->strstart != 0) {
+            putShortMSB(s, (uInt)(strm->adler >> 16));
+            putShortMSB(s, (uInt)(strm->adler & 0xffff));
+        }
+        strm->adler = adler32(0L, Z_NULL, 0);
+        s->status = BUSY_STATE;
 
+        /* Compression must start with an empty pending buffer */
+        flush_pending(strm);
+        if (s->pending != 0) {
+            s->last_flush = -1;
+            return Z_OK;
+        }
+    }
+#ifdef GZIP
+    if (s->status == GZIP_STATE) {
+        /* gzip header */
+        strm->adler = crc32(0L, Z_NULL, 0);
+        put_byte(s, 31);
+        put_byte(s, 139);
+        put_byte(s, 8);
+        if (s->gzhead == Z_NULL) {
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, s->level == 9 ? 2 :
+                     (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+                      4 : 0));
+            put_byte(s, OS_CODE);
             s->status = BUSY_STATE;
-            putShortMSB(s, header);
 
-            /* Save the adler32 of the preset dictionary: */
-            if (s->strstart != 0) {
-                putShortMSB(s, (uInt)(strm->adler >> 16));
-                putShortMSB(s, (uInt)(strm->adler & 0xffff));
+            /* Compression must start with an empty pending buffer */
+            flush_pending(strm);
+            if (s->pending != 0) {
+                s->last_flush = -1;
+                return Z_OK;
             }
-            strm->adler = adler32(0L, Z_NULL, 0);
+        }
+        else {
+            put_byte(s, (s->gzhead->text ? 1 : 0) +
+                     (s->gzhead->hcrc ? 2 : 0) +
+                     (s->gzhead->extra == Z_NULL ? 0 : 4) +
+                     (s->gzhead->name == Z_NULL ? 0 : 8) +
+                     (s->gzhead->comment == Z_NULL ? 0 : 16)
+                     );
+            put_byte(s, (Byte)(s->gzhead->time & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
+            put_byte(s, s->level == 9 ? 2 :
+                     (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+                      4 : 0));
+            put_byte(s, s->gzhead->os & 0xff);
+            if (s->gzhead->extra != Z_NULL) {
+                put_byte(s, s->gzhead->extra_len & 0xff);
+                put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
+            }
+            if (s->gzhead->hcrc)
+                strm->adler = crc32(strm->adler, s->pending_buf,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Thu Feb 16 06:16:52 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AC51CE136F;
 Thu, 16 Feb 2017 06:16:52 +0000 (UTC)
 (envelope-from delphij@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 mx1.freebsd.org (Postfix) with ESMTPS id 330098A2;
 Thu, 16 Feb 2017 06:16:52 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G6GpIk059008;
 Thu, 16 Feb 2017 06:16:51 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G6GoTA059000;
 Thu, 16 Feb 2017 06:16:50 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201702160616.v1G6GoTA059000@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Thu, 16 Feb 2017 06:16:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313796 - in stable/10: contrib/zlib contrib/zlib/contrib
 contrib/zlib/test lib/libz
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 06:16:52 -0000

Author: delphij
Date: Thu Feb 16 06:16:50 2017
New Revision: 313796
URL: https://svnweb.freebsd.org/changeset/base/313796

Log:
  MFC r311285,312335: zlib 1.2.11.

Modified:
  stable/10/contrib/zlib/ChangeLog
  stable/10/contrib/zlib/README
  stable/10/contrib/zlib/adler32.c
  stable/10/contrib/zlib/compress.c
  stable/10/contrib/zlib/contrib/README.contrib
  stable/10/contrib/zlib/crc32.c
  stable/10/contrib/zlib/deflate.c
  stable/10/contrib/zlib/deflate.h
  stable/10/contrib/zlib/gzguts.h
  stable/10/contrib/zlib/gzlib.c
  stable/10/contrib/zlib/gzread.c
  stable/10/contrib/zlib/gzwrite.c
  stable/10/contrib/zlib/infback.c
  stable/10/contrib/zlib/inffast.c
  stable/10/contrib/zlib/inflate.c
  stable/10/contrib/zlib/inflate.h
  stable/10/contrib/zlib/inftrees.c
  stable/10/contrib/zlib/test/example.c
  stable/10/contrib/zlib/test/infcover.c
  stable/10/contrib/zlib/test/minigzip.c
  stable/10/contrib/zlib/trees.c
  stable/10/contrib/zlib/uncompr.c
  stable/10/contrib/zlib/zconf.h
  stable/10/contrib/zlib/zconf.h.in
  stable/10/contrib/zlib/zlib.3
  stable/10/contrib/zlib/zlib.h
  stable/10/contrib/zlib/zlib.map
  stable/10/contrib/zlib/zutil.c
  stable/10/contrib/zlib/zutil.h
  stable/10/lib/libz/Symbol.map
  stable/10/lib/libz/Versions.def
  stable/10/lib/libz/zlib.pc
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/zlib/ChangeLog
==============================================================================
--- stable/10/contrib/zlib/ChangeLog	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/ChangeLog	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,10 +1,53 @@
 
                 ChangeLog file for zlib
 
+Changes in 1.2.11 (15 Jan 2017)
+- Fix deflate stored bug when pulling last block from window
+- Permit immediate deflateParams changes before any deflate input
+
+Changes in 1.2.10 (2 Jan 2017)
+- Avoid warnings on snprintf() return value
+- Fix bug in deflate_stored() for zero-length input
+- Fix bug in gzwrite.c that produced corrupt gzip files
+- Remove files to be installed before copying them in Makefile.in
+- Add warnings when compiling with assembler code
+
+Changes in 1.2.9 (31 Dec 2016)
+- Fix contrib/minizip to permit unzipping with desktop API [Zouzou]
+- Improve contrib/blast to return unused bytes
+- Assure that gzoffset() is correct when appending
+- Improve compress() and uncompress() to support large lengths
+- Fix bug in test/example.c where error code not saved
+- Remedy Coverity warning [Randers-Pehrson]
+- Improve speed of gzprintf() in transparent mode
+- Fix inflateInit2() bug when windowBits is 16 or 32
+- Change DEBUG macro to ZLIB_DEBUG
+- Avoid uninitialized access by gzclose_w()
+- Allow building zlib outside of the source directory
+- Fix bug that accepted invalid zlib header when windowBits is zero
+- Fix gzseek() problem on MinGW due to buggy _lseeki64 there
+- Loop on write() calls in gzwrite.c in case of non-blocking I/O
+- Add --warn (-w) option to ./configure for more compiler warnings
+- Reject a window size of 256 bytes if not using the zlib wrapper
+- Fix bug when level 0 used with Z_HUFFMAN or Z_RLE
+- Add --debug (-d) option to ./configure to define ZLIB_DEBUG
+- Fix bugs in creating a very large gzip header
+- Add uncompress2() function, which returns the input size used
+- Assure that deflateParams() will not switch functions mid-block
+- Dramatically speed up deflation for level 0 (storing)
+- Add gzfread(), duplicating the interface of fread()
+- Add gzfwrite(), duplicating the interface of fwrite()
+- Add deflateGetDictionary() function
+- Use snprintf() for later versions of Microsoft C
+- Fix *Init macros to use z_ prefix when requested
+- Replace as400 with os400 for OS/400 support [Monnerat]
+- Add crc32_z() and adler32_z() functions with size_t lengths
+- Update Visual Studio project files [AraHaan]
+
 Changes in 1.2.8 (28 Apr 2013)
 - Update contrib/minizip/iowin32.c for Windows RT [Vollant]
 - Do not force Z_CONST for C++
-- Clean up contrib/vstudio [Ro§]
+- Clean up contrib/vstudio [Roß]
 - Correct spelling error in zlib.h
 - Fix mixed line endings in contrib/vstudio
 
@@ -34,7 +77,7 @@ Changes in 1.2.7.1 (24 Mar 2013)
 - Clean up the usage of z_const and respect const usage within zlib
 - Clean up examples/gzlog.[ch] comparisons of different types
 - Avoid shift equal to bits in type (caused endless loop)
-- Fix unintialized value bug in gzputc() introduced by const patches
+- Fix uninitialized value bug in gzputc() introduced by const patches
 - Fix memory allocation error in examples/zran.c [Nor]
 - Fix bug where gzopen(), gzclose() would write an empty file
 - Fix bug in gzclose() when gzwrite() runs out of memory
@@ -194,7 +237,7 @@ Changes in 1.2.5.2 (17 Dec 2011)
 - Add a transparent write mode to gzopen() when 'T' is in the mode
 - Update python link in zlib man page
 - Get inffixed.h and MAKEFIXED result to match
-- Add a ./config --solo option to make zlib subset with no libary use
+- Add a ./config --solo option to make zlib subset with no library use
 - Add undocumented inflateResetKeep() function for CAB file decoding
 - Add --cover option to ./configure for gcc coverage testing
 - Add #define ZLIB_CONST option to use const in the z_stream interface
@@ -564,7 +607,7 @@ Changes in 1.2.3.1 (16 August 2006)
 - Update make_vms.com [Zinser]
 - Use -fPIC for shared build in configure [Teredesai, Nicholson]
 - Use only major version number for libz.so on IRIX and OSF1 [Reinholdtsen]
-- Use fdopen() (not _fdopen()) for Interix in zutil.h [BŠck]
+- Use fdopen() (not _fdopen()) for Interix in zutil.h [Bäck]
 - Add some FAQ entries about the contrib directory
 - Update the MVS question in the FAQ
 - Avoid extraneous reads after EOF in gzio.c [Brown]
@@ -1178,7 +1221,7 @@ Changes in 1.0.6 (19 Jan 1998)
         386 asm code replacing longest_match().
    contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
         A C++ I/O streams interface to the zlib gz* functions
-   contrib/iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
+   contrib/iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
         Another C++ I/O streams interface
    contrib/untgz/  by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
         A very simple tar.gz file extractor using zlib
@@ -1267,7 +1310,7 @@ Changes in 1.0.1 (20 May 96) [1.0 skippe
 - fix array overlay in deflate.c which sometimes caused bad compressed data
 - fix inflate bug with empty stored block
 - fix MSDOS medium model which was broken in 0.99
-- fix deflateParams() which could generated bad compressed data.
+- fix deflateParams() which could generate bad compressed data.
 - Bytef is define'd instead of typedef'ed (work around Borland bug)
 - added an INDEX file
 - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),

Modified: stable/10/contrib/zlib/README
==============================================================================
--- stable/10/contrib/zlib/README	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/README	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,6 +1,6 @@
 ZLIB DATA COMPRESSION LIBRARY
 
-zlib 1.2.8 is a general purpose data compression library.  All the code is
+zlib 1.2.11 is a general purpose data compression library.  All the code is
 thread safe.  The data format used by the zlib library is described by RFCs
 (Request for Comments) 1950 to 1952 in the files
 http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
@@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an ar
 issue of Dr.  Dobb's Journal; a copy of the article is available at
 http://marknelson.us/1997/01/01/zlib-engine/ .
 
-The changes made in version 1.2.8 are documented in the file ChangeLog.
+The changes made in version 1.2.11 are documented in the file ChangeLog.
 
 Unsupported third party contributions are provided in directory contrib/ .
 
@@ -84,7 +84,7 @@ Acknowledgments:
 
 Copyright notice:
 
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
 
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages

Modified: stable/10/contrib/zlib/adler32.c
==============================================================================
--- stable/10/contrib/zlib/adler32.c	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/adler32.c	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,5 +1,5 @@
 /* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2011 Mark Adler
+ * Copyright (C) 1995-2011, 2016 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -7,11 +7,9 @@
 
 #include "zutil.h"
 
-#define local static
-
 local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
 
-#define BASE 65521      /* largest prime smaller than 65536 */
+#define BASE 65521U     /* largest prime smaller than 65536 */
 #define NMAX 5552
 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
 
@@ -62,10 +60,10 @@ local uLong adler32_combine_ OF((uLong a
 #endif
 
 /* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
+uLong ZEXPORT adler32_z(adler, buf, len)
     uLong adler;
     const Bytef *buf;
-    uInt len;
+    z_size_t len;
 {
     unsigned long sum2;
     unsigned n;
@@ -133,6 +131,15 @@ uLong ZEXPORT adler32(adler, buf, len)
 }
 
 /* ========================================================================= */
+uLong ZEXPORT adler32(adler, buf, len)
+    uLong adler;
+    const Bytef *buf;
+    uInt len;
+{
+    return adler32_z(adler, buf, len);
+}
+
+/* ========================================================================= */
 local uLong adler32_combine_(adler1, adler2, len2)
     uLong adler1;
     uLong adler2;
@@ -156,7 +163,7 @@ local uLong adler32_combine_(adler1, adl
     sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
     if (sum1 >= BASE) sum1 -= BASE;
     if (sum1 >= BASE) sum1 -= BASE;
-    if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
+    if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1);
     if (sum2 >= BASE) sum2 -= BASE;
     return sum1 | (sum2 << 16);
 }

Modified: stable/10/contrib/zlib/compress.c
==============================================================================
--- stable/10/contrib/zlib/compress.c	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/compress.c	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,5 +1,5 @@
 /* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2005 Jean-loup Gailly.
+ * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -28,16 +28,11 @@ int ZEXPORT compress2 (dest, destLen, so
 {
     z_stream stream;
     int err;
+    const uInt max = (uInt)-1;
+    uLong left;
 
-    stream.next_in = (z_const Bytef *)source;
-    stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
-    /* Check for source > 64K on 16-bit machine: */
-    if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
-    stream.next_out = dest;
-    stream.avail_out = (uInt)*destLen;
-    if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+    left = *destLen;
+    *destLen = 0;
 
     stream.zalloc = (alloc_func)0;
     stream.zfree = (free_func)0;
@@ -46,15 +41,26 @@ int ZEXPORT compress2 (dest, destLen, so
     err = deflateInit(&stream, level);
     if (err != Z_OK) return err;
 
-    err = deflate(&stream, Z_FINISH);
-    if (err != Z_STREAM_END) {
-        deflateEnd(&stream);
-        return err == Z_OK ? Z_BUF_ERROR : err;
-    }
-    *destLen = stream.total_out;
+    stream.next_out = dest;
+    stream.avail_out = 0;
+    stream.next_in = (z_const Bytef *)source;
+    stream.avail_in = 0;
+
+    do {
+        if (stream.avail_out == 0) {
+            stream.avail_out = left > (uLong)max ? max : (uInt)left;
+            left -= stream.avail_out;
+        }
+        if (stream.avail_in == 0) {
+            stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
+            sourceLen -= stream.avail_in;
+        }
+        err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
+    } while (err == Z_OK);
 
-    err = deflateEnd(&stream);
-    return err;
+    *destLen = stream.total_out;
+    deflateEnd(&stream);
+    return err == Z_STREAM_END ? Z_OK : err;
 }
 
 /* ===========================================================================

Modified: stable/10/contrib/zlib/contrib/README.contrib
==============================================================================
--- stable/10/contrib/zlib/contrib/README.contrib	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/contrib/README.contrib	Thu Feb 16 06:16:50 2017	(r313796)
@@ -38,7 +38,7 @@ inflate86/  by Chris Anderson <christop@
 iostream/   by Kevin Ruland <kevin@rodin.wustl.edu>
         A C++ I/O streams interface to the zlib gz* functions
 
-iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
+iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>
         Another C++ I/O streams interface
 
 iostream3/  by Ludwig Schwardt <schwardt@sun.ac.za>
@@ -58,7 +58,7 @@ masmx86/    by Gilles Vollant <info@wini
 minizip/    by Gilles Vollant <info@winimage.com>
         Mini zip and unzip based on zlib
         Includes Zip64 support by Mathias Svensson <mathias@result42.com>
-        See http://www.winimage.com/zLibDll/unzip.html
+        See http://www.winimage.com/zLibDll/minizip.html
 
 pascal/     by Bob Dellaca <bobdl@xtra.co.nz> et al.
         Support for Pascal

Modified: stable/10/contrib/zlib/crc32.c
==============================================================================
--- stable/10/contrib/zlib/crc32.c	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/crc32.c	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,5 +1,5 @@
 /* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
+ * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  *
  * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
@@ -30,17 +30,15 @@
 
 #include "zutil.h"      /* for STDC and FAR definitions */
 
-#define local static
-
 /* Definitions for doing the crc four data bytes at a time. */
 #if !defined(NOBYFOUR) && defined(Z_U4)
 #  define BYFOUR
 #endif
 #ifdef BYFOUR
    local unsigned long crc32_little OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
+                        const unsigned char FAR *, z_size_t));
    local unsigned long crc32_big OF((unsigned long,
-                        const unsigned char FAR *, unsigned));
+                        const unsigned char FAR *, z_size_t));
 #  define TBLS 8
 #else
 #  define TBLS 1
@@ -201,10 +199,10 @@ const z_crc_t FAR * ZEXPORT get_crc_tabl
 #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
 
 /* ========================================================================= */
-unsigned long ZEXPORT crc32(crc, buf, len)
+unsigned long ZEXPORT crc32_z(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    uInt len;
+    z_size_t len;
 {
     if (buf == Z_NULL) return 0UL;
 
@@ -235,8 +233,29 @@ unsigned long ZEXPORT crc32(crc, buf, le
     return crc ^ 0xffffffffUL;
 }
 
+/* ========================================================================= */
+unsigned long ZEXPORT crc32(crc, buf, len)
+    unsigned long crc;
+    const unsigned char FAR *buf;
+    uInt len;
+{
+    return crc32_z(crc, buf, len);
+}
+
 #ifdef BYFOUR
 
+/*
+   This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit
+   integer pointer type. This violates the strict aliasing rule, where a
+   compiler can assume, for optimization purposes, that two pointers to
+   fundamentally different types won't ever point to the same memory. This can
+   manifest as a problem only if one of the pointers is written to. This code
+   only reads from those pointers. So long as this code remains isolated in
+   this compilation unit, there won't be a problem. For this reason, this code
+   should not be copied and pasted into a compilation unit in which other code
+   writes to the buffer that is passed to these routines.
+ */
+
 /* ========================================================================= */
 #define DOLIT4 c ^= *buf4++; \
         c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
@@ -247,7 +266,7 @@ unsigned long ZEXPORT crc32(crc, buf, le
 local unsigned long crc32_little(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    unsigned len;
+    z_size_t len;
 {
     register z_crc_t c;
     register const z_crc_t FAR *buf4;
@@ -278,7 +297,7 @@ local unsigned long crc32_little(crc, bu
 }
 
 /* ========================================================================= */
-#define DOBIG4 c ^= *++buf4; \
+#define DOBIG4 c ^= *buf4++; \
         c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
             crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
 #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
@@ -287,7 +306,7 @@ local unsigned long crc32_little(crc, bu
 local unsigned long crc32_big(crc, buf, len)
     unsigned long crc;
     const unsigned char FAR *buf;
-    unsigned len;
+    z_size_t len;
 {
     register z_crc_t c;
     register const z_crc_t FAR *buf4;
@@ -300,7 +319,6 @@ local unsigned long crc32_big(crc, buf, 
     }
 
     buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-    buf4--;
     while (len >= 32) {
         DOBIG32;
         len -= 32;
@@ -309,7 +327,6 @@ local unsigned long crc32_big(crc, buf, 
         DOBIG4;
         len -= 4;
     }
-    buf4++;
     buf = (const unsigned char FAR *)buf4;
 
     if (len) do {

Modified: stable/10/contrib/zlib/deflate.c
==============================================================================
--- stable/10/contrib/zlib/deflate.c	Thu Feb 16 06:16:23 2017	(r313795)
+++ stable/10/contrib/zlib/deflate.c	Thu Feb 16 06:16:50 2017	(r313796)
@@ -1,5 +1,5 @@
 /* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -52,7 +52,7 @@
 #include "deflate.h"
 
 const char deflate_copyright[] =
-   " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler ";
+   " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -73,6 +73,8 @@ typedef enum {
 typedef block_state (*compress_func) OF((deflate_state *s, int flush));
 /* Compression function. Returns the block state after the call. */
 
+local int deflateStateCheck      OF((z_streamp strm));
+local void slide_hash     OF((deflate_state *s));
 local void fill_window    OF((deflate_state *s));
 local block_state deflate_stored OF((deflate_state *s, int flush));
 local block_state deflate_fast   OF((deflate_state *s, int flush));
@@ -84,15 +86,16 @@ local block_state deflate_huff   OF((def
 local void lm_init        OF((deflate_state *s));
 local void putShortMSB    OF((deflate_state *s, uInt b));
 local void flush_pending  OF((z_streamp strm));
-local int read_buf        OF((z_streamp strm, Bytef *buf, unsigned size));
+local unsigned read_buf   OF((z_streamp strm, Bytef *buf, unsigned size));
 #ifdef ASMV
+#  pragma message("Assembler code may have bugs -- use at your own risk")
       void match_init OF((void)); /* asm code initialization */
       uInt longest_match  OF((deflate_state *s, IPos cur_match));
 #else
 local uInt longest_match  OF((deflate_state *s, IPos cur_match));
 #endif
 
-#ifdef DEBUG
+#ifdef ZLIB_DEBUG
 local  void check_match OF((deflate_state *s, IPos start, IPos match,
                             int length));
 #endif
@@ -148,21 +151,14 @@ local const config configuration_table[1
  * meaning.
  */
 
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
 /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
-#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0))
+#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0))
 
 /* ===========================================================================
  * Update a hash value with the given input byte
- * IN  assertion: all calls to to UPDATE_HASH are made with consecutive
- *    input characters, so that a running hash key can be computed from the
- *    previous key instead of complete recalculation each time.
+ * IN  assertion: all calls to UPDATE_HASH are made with consecutive input
+ *    characters, so that a running hash key can be computed from the previous
+ *    key instead of complete recalculation each time.
  */
 #define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
 
@@ -173,9 +169,9 @@ struct static_tree_desc_s {int dummy;}; 
  * the previous length of the hash chain.
  * If this file is compiled with -DFASTEST, the compression level is forced
  * to 1, and no hash chains are maintained.
- * IN  assertion: all calls to to INSERT_STRING are made with consecutive
- *    input characters and the first MIN_MATCH bytes of str are valid
- *    (except for the last MIN_MATCH-1 bytes of the input file).
+ * IN  assertion: all calls to INSERT_STRING are made with consecutive input
+ *    characters and the first MIN_MATCH bytes of str are valid (except for
+ *    the last MIN_MATCH-1 bytes of the input file).
  */
 #ifdef FASTEST
 #define INSERT_STRING(s, str, match_head) \
@@ -197,6 +193,37 @@ struct static_tree_desc_s {int dummy;}; 
     s->head[s->hash_size-1] = NIL; \
     zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
 
+/* ===========================================================================
+ * Slide the hash table when sliding the window down (could be avoided with 32
+ * bit values at the expense of memory usage). We slide even when level == 0 to
+ * keep the hash table consistent if we switch back to level > 0 later.
+ */
+local void slide_hash(s)
+    deflate_state *s;
+{
+    unsigned n, m;
+    Posf *p;
+    uInt wsize = s->w_size;
+
+    n = s->hash_size;
+    p = &s->head[n];
+    do {
+        m = *--p;
+        *p = (Pos)(m >= wsize ? m - wsize : NIL);
+    } while (--n);
+    n = wsize;
+#ifndef FASTEST
+    p = &s->prev[n];
+    do {
+        m = *--p;
+        *p = (Pos)(m >= wsize ? m - wsize : NIL);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+    } while (--n);
+#endif
+}
+
 /* ========================================================================= */
 int ZEXPORT deflateInit_(strm, level, version, stream_size)
     z_streamp strm;
@@ -270,7 +297,7 @@ int ZEXPORT deflateInit2_(strm, level, m
 #endif
     if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
         windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
-        strategy < 0 || strategy > Z_FIXED) {
+        strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) {
         return Z_STREAM_ERROR;
     }
     if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */
@@ -278,14 +305,15 @@ int ZEXPORT deflateInit2_(strm, level, m
     if (s == Z_NULL) return Z_MEM_ERROR;
     strm->state = (struct internal_state FAR *)s;
     s->strm = strm;
+    s->status = INIT_STATE;     /* to pass state test in deflateReset() */
 
     s->wrap = wrap;
     s->gzhead = Z_NULL;
-    s->w_bits = windowBits;
+    s->w_bits = (uInt)windowBits;
     s->w_size = 1 << s->w_bits;
     s->w_mask = s->w_size - 1;
 
-    s->hash_bits = memLevel + 7;
+    s->hash_bits = (uInt)memLevel + 7;
     s->hash_size = 1 << s->hash_bits;
     s->hash_mask = s->hash_size - 1;
     s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
@@ -319,6 +347,31 @@ int ZEXPORT deflateInit2_(strm, level, m
     return deflateReset(strm);
 }
 
+/* =========================================================================
+ * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
+ */
+local int deflateStateCheck (strm)
+    z_streamp strm;
+{
+    deflate_state *s;
+    if (strm == Z_NULL ||
+        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+        return 1;
+    s = strm->state;
+    if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE &&
+#ifdef GZIP
+                                           s->status != GZIP_STATE &&
+#endif
+                                           s->status != EXTRA_STATE &&
+                                           s->status != NAME_STATE &&
+                                           s->status != COMMENT_STATE &&
+                                           s->status != HCRC_STATE &&
+                                           s->status != BUSY_STATE &&
+                                           s->status != FINISH_STATE))
+        return 1;
+    return 0;
+}
+
 /* ========================================================================= */
 int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
     z_streamp strm;
@@ -331,7 +384,7 @@ int ZEXPORT deflateSetDictionary (strm, 
     unsigned avail;
     z_const unsigned char *next;
 
-    if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
+    if (deflateStateCheck(strm) || dictionary == Z_NULL)
         return Z_STREAM_ERROR;
     s = strm->state;
     wrap = s->wrap;
@@ -389,13 +442,34 @@ int ZEXPORT deflateSetDictionary (strm, 
 }
 
 /* ========================================================================= */
+int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength)
+    z_streamp strm;
+    Bytef *dictionary;
+    uInt  *dictLength;
+{
+    deflate_state *s;
+    uInt len;
+
+    if (deflateStateCheck(strm))
+        return Z_STREAM_ERROR;
+    s = strm->state;
+    len = s->strstart + s->lookahead;
+    if (len > s->w_size)
+        len = s->w_size;
+    if (dictionary != Z_NULL && len)
+        zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len);
+    if (dictLength != Z_NULL)
+        *dictLength = len;
+    return Z_OK;
+}
+
+/* ========================================================================= */
 int ZEXPORT deflateResetKeep (strm)
     z_streamp strm;
 {
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) {
+    if (deflateStateCheck(strm)) {
         return Z_STREAM_ERROR;
     }
 
@@ -410,7 +484,11 @@ int ZEXPORT deflateResetKeep (strm)
     if (s->wrap < 0) {
         s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
     }
-    s->status = s->wrap ? INIT_STATE : BUSY_STATE;
+    s->status =
+#ifdef GZIP
+        s->wrap == 2 ? GZIP_STATE :
+#endif
+        s->wrap ? INIT_STATE : BUSY_STATE;
     strm->adler =
 #ifdef GZIP
         s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
@@ -440,8 +518,8 @@ int ZEXPORT deflateSetHeader (strm, head
     z_streamp strm;
     gz_headerp head;
 {
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-    if (strm->state->wrap != 2) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm) || strm->state->wrap != 2)
+        return Z_STREAM_ERROR;
     strm->state->gzhead = head;
     return Z_OK;
 }
@@ -452,7 +530,7 @@ int ZEXPORT deflatePending (strm, pendin
     int *bits;
     z_streamp strm;
 {
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     if (pending != Z_NULL)
         *pending = strm->state->pending;
     if (bits != Z_NULL)
@@ -469,7 +547,7 @@ int ZEXPORT deflatePrime (strm, bits, va
     deflate_state *s;
     int put;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
     if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
         return Z_BUF_ERROR;
@@ -494,9 +572,8 @@ int ZEXPORT deflateParams(strm, level, s
 {
     deflate_state *s;
     compress_func func;
-    int err = Z_OK;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
 
 #ifdef FASTEST
@@ -510,13 +587,22 @@ int ZEXPORT deflateParams(strm, level, s
     func = configuration_table[s->level].func;
 
     if ((strategy != s->strategy || func != configuration_table[level].func) &&
-        strm->total_in != 0) {
+        s->high_water) {
         /* Flush the last buffer: */
-        err = deflate(strm, Z_BLOCK);
-        if (err == Z_BUF_ERROR && s->pending == 0)
-            err = Z_OK;
+        int err = deflate(strm, Z_BLOCK);
+        if (err == Z_STREAM_ERROR)
+            return err;
+        if (strm->avail_out == 0)
+            return Z_BUF_ERROR;
     }
     if (s->level != level) {
+        if (s->level == 0 && s->matches != 0) {
+            if (s->matches == 1)
+                slide_hash(s);
+            else
+                CLEAR_HASH(s);
+            s->matches = 0;
+        }
         s->level = level;
         s->max_lazy_match   = configuration_table[level].max_lazy;
         s->good_match       = configuration_table[level].good_length;
@@ -524,7 +610,7 @@ int ZEXPORT deflateParams(strm, level, s
         s->max_chain_length = configuration_table[level].max_chain;
     }
     s->strategy = strategy;
-    return err;
+    return Z_OK;
 }
 
 /* ========================================================================= */
@@ -537,12 +623,12 @@ int ZEXPORT deflateTune(strm, good_lengt
 {
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+    if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
     s = strm->state;
-    s->good_match = good_length;
-    s->max_lazy_match = max_lazy;
+    s->good_match = (uInt)good_length;
+    s->max_lazy_match = (uInt)max_lazy;
     s->nice_match = nice_length;
-    s->max_chain_length = max_chain;
+    s->max_chain_length = (uInt)max_chain;
     return Z_OK;
 }
 
@@ -569,14 +655,13 @@ uLong ZEXPORT deflateBound(strm, sourceL
 {
     deflate_state *s;
     uLong complen, wraplen;
-    Bytef *str;
 
     /* conservative upper bound for compressed data */
     complen = sourceLen +
               ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
 
     /* if can't get parameters, return conservative bound plus zlib wrapper */
-    if (strm == Z_NULL || strm->state == Z_NULL)
+    if (deflateStateCheck(strm))
         return complen + 6;
 
     /* compute wrapper length */
@@ -588,9 +673,11 @@ uLong ZEXPORT deflateBound(strm, sourceL
     case 1:                                 /* zlib wrapper */
         wraplen = 6 + (s->strstart ? 4 : 0);
         break;
+#ifdef GZIP
     case 2:                                 /* gzip wrapper */
         wraplen = 18;
         if (s->gzhead != Z_NULL) {          /* user-supplied gzip header */
+            Bytef *str;
             if (s->gzhead->extra != Z_NULL)
                 wraplen += 2 + s->gzhead->extra_len;
             str = s->gzhead->name;
@@ -607,6 +694,7 @@ uLong ZEXPORT deflateBound(strm, sourceL
                 wraplen += 2;
         }
         break;
+#endif
     default:                                /* for compiler happiness */
         wraplen = 6;
     }
@@ -634,10 +722,10 @@ local void putShortMSB (s, b)
 }
 
 /* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
+ * Flush as much pending output as possible. All deflate() output, except for
+ * some deflate_stored() output, goes through this function so some
+ * applications may wish to modify it to avoid allocating a large
+ * strm->next_out buffer and copying into it. (See also read_buf()).
  */
 local void flush_pending(strm)
     z_streamp strm;
@@ -654,13 +742,23 @@ local void flush_pending(strm)
     strm->next_out  += len;
     s->pending_out  += len;
     strm->total_out += len;
-    strm->avail_out  -= len;
-    s->pending -= len;
+    strm->avail_out -= len;
+    s->pending      -= len;
     if (s->pending == 0) {
         s->pending_out = s->pending_buf;
     }
 }
 
+/* ===========================================================================
+ * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
+ */
+#define HCRC_UPDATE(beg) \
+    do { \
+        if (s->gzhead->hcrc && s->pending > (beg)) \
+            strm->adler = crc32(strm->adler, s->pending_buf + (beg), \
+                                s->pending - (beg)); \
+    } while (0)
+
 /* ========================================================================= */
 int ZEXPORT deflate (strm, flush)
     z_streamp strm;
@@ -669,230 +767,229 @@ int ZEXPORT deflate (strm, flush)
     int old_flush; /* value of flush param for previous deflate call */
     deflate_state *s;
 
-    if (strm == Z_NULL || strm->state == Z_NULL ||
-        flush > Z_BLOCK || flush < 0) {
+    if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
         return Z_STREAM_ERROR;
     }
     s = strm->state;
 
     if (strm->next_out == Z_NULL ||
-        (strm->next_in == Z_NULL && strm->avail_in != 0) ||
+        (strm->avail_in != 0 && strm->next_in == Z_NULL) ||
         (s->status == FINISH_STATE && flush != Z_FINISH)) {
         ERR_RETURN(strm, Z_STREAM_ERROR);
     }
     if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
 
-    s->strm = strm; /* just in case */
     old_flush = s->last_flush;
     s->last_flush = flush;
 
+    /* Flush as much pending output as possible */
+    if (s->pending != 0) {
+        flush_pending(strm);
+        if (strm->avail_out == 0) {
+            /* Since avail_out is 0, deflate will be called again with
+             * more output space, but possibly with both pending and
+             * avail_in equal to zero. There won't be anything to do,
+             * but this is not an error situation so make sure we
+             * return OK instead of BUF_ERROR at next call of deflate:
+             */
+            s->last_flush = -1;
+            return Z_OK;
+        }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+    } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
+               flush != Z_FINISH) {
+        ERR_RETURN(strm, Z_BUF_ERROR);
+    }
+
+    /* User must not provide more input after the first FINISH: */
+    if (s->status == FINISH_STATE && strm->avail_in != 0) {
+        ERR_RETURN(strm, Z_BUF_ERROR);
+    }
+
     /* Write the header */
     if (s->status == INIT_STATE) {
-#ifdef GZIP
-        if (s->wrap == 2) {
-            strm->adler = crc32(0L, Z_NULL, 0);
-            put_byte(s, 31);
-            put_byte(s, 139);
-            put_byte(s, 8);
-            if (s->gzhead == Z_NULL) {
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, 0);
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, OS_CODE);
-                s->status = BUSY_STATE;
-            }
-            else {
-                put_byte(s, (s->gzhead->text ? 1 : 0) +
-                            (s->gzhead->hcrc ? 2 : 0) +
-                            (s->gzhead->extra == Z_NULL ? 0 : 4) +
-                            (s->gzhead->name == Z_NULL ? 0 : 8) +
-                            (s->gzhead->comment == Z_NULL ? 0 : 16)
-                        );
-                put_byte(s, (Byte)(s->gzhead->time & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
-                put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
-                put_byte(s, s->level == 9 ? 2 :
-                            (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
-                             4 : 0));
-                put_byte(s, s->gzhead->os & 0xff);
-                if (s->gzhead->extra != Z_NULL) {
-                    put_byte(s, s->gzhead->extra_len & 0xff);
-                    put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
-                }
-                if (s->gzhead->hcrc)
-                    strm->adler = crc32(strm->adler, s->pending_buf,
-                                        s->pending);
-                s->gzindex = 0;
-                s->status = EXTRA_STATE;
-            }
-        }
+        /* zlib header */
+        uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+        uInt level_flags;
+
+        if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
+            level_flags = 0;
+        else if (s->level < 6)
+            level_flags = 1;
+        else if (s->level == 6)
+            level_flags = 2;
         else
-#endif
-        {
-            uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
-            uInt level_flags;
-
-            if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
-                level_flags = 0;
-            else if (s->level < 6)
-                level_flags = 1;
-            else if (s->level == 6)
-                level_flags = 2;
-            else
-                level_flags = 3;
-            header |= (level_flags << 6);
-            if (s->strstart != 0) header |= PRESET_DICT;
-            header += 31 - (header % 31);
+            level_flags = 3;
+        header |= (level_flags << 6);
+        if (s->strstart != 0) header |= PRESET_DICT;
+        header += 31 - (header % 31);
+
+        putShortMSB(s, header);
+
+        /* Save the adler32 of the preset dictionary: */
+        if (s->strstart != 0) {
+            putShortMSB(s, (uInt)(strm->adler >> 16));
+            putShortMSB(s, (uInt)(strm->adler & 0xffff));
+        }
+        strm->adler = adler32(0L, Z_NULL, 0);
+        s->status = BUSY_STATE;
 
+        /* Compression must start with an empty pending buffer */
+        flush_pending(strm);
+        if (s->pending != 0) {
+            s->last_flush = -1;
+            return Z_OK;
+        }
+    }
+#ifdef GZIP
+    if (s->status == GZIP_STATE) {
+        /* gzip header */
+        strm->adler = crc32(0L, Z_NULL, 0);
+        put_byte(s, 31);
+        put_byte(s, 139);
+        put_byte(s, 8);
+        if (s->gzhead == Z_NULL) {
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, 0);
+            put_byte(s, s->level == 9 ? 2 :
+                     (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+                      4 : 0));
+            put_byte(s, OS_CODE);
             s->status = BUSY_STATE;
-            putShortMSB(s, header);
 
-            /* Save the adler32 of the preset dictionary: */
-            if (s->strstart != 0) {
-                putShortMSB(s, (uInt)(strm->adler >> 16));
-                putShortMSB(s, (uInt)(strm->adler & 0xffff));
+            /* Compression must start with an empty pending buffer */
+            flush_pending(strm);
+            if (s->pending != 0) {
+                s->last_flush = -1;
+                return Z_OK;
             }
-            strm->adler = adler32(0L, Z_NULL, 0);
+        }
+        else {
+            put_byte(s, (s->gzhead->text ? 1 : 0) +
+                     (s->gzhead->hcrc ? 2 : 0) +
+                     (s->gzhead->extra == Z_NULL ? 0 : 4) +
+                     (s->gzhead->name == Z_NULL ? 0 : 8) +
+                     (s->gzhead->comment == Z_NULL ? 0 : 16)
+                     );
+            put_byte(s, (Byte)(s->gzhead->time & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
+            put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
+            put_byte(s, s->level == 9 ? 2 :
+                     (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+                      4 : 0));
+            put_byte(s, s->gzhead->os & 0xff);
+            if (s->gzhead->extra != Z_NULL) {
+                put_byte(s, s->gzhead->extra_len & 0xff);
+                put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
+            }
+            if (s->gzhead->hcrc)
+                strm->adler = crc32(strm->adler, s->pending_buf,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Thu Feb 16 09:12:37 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B4CECE058E;
 Thu, 16 Feb 2017 09:12:37 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id 48590DA6;
 Thu, 16 Feb 2017 09:12:37 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G9CatR031035;
 Thu, 16 Feb 2017 09:12:36 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G9CaNj031034;
 Thu, 16 Feb 2017 09:12:36 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702160912.v1G9CaNj031034@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Thu, 16 Feb 2017 09:12:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313802 - stable/11/usr.sbin/arp
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 09:12:37 -0000

Author: garga (ports committer)
Date: Thu Feb 16 09:12:36 2017
New Revision: 313802
URL: https://svnweb.freebsd.org/changeset/base/313802

Log:
  MFC r313477:
  
  Cleanup on usr.sbin/arp/arp.c
  
  * 'blackhole' and 'reject' are mutually exclusive, replace printf() by errx()
    when both are selected.
  * 'trail' option is no longer supported since first import of arp from 4.4BSD.
    XXX message was added 13 years ago in r128192. I believe it's time to remove
    it.
  * Use warnx() to print some informative messages instead of printf()
  * Replace strncmp() by strcmp() when validating parameters and exit when invalid
    parameter is found
  
  Reviewed by:	allanjude, vangyzen, cem
  Approved by:	allanjude
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D9504

Modified:
  stable/11/usr.sbin/arp/arp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/arp/arp.c
==============================================================================
--- stable/11/usr.sbin/arp/arp.c	Thu Feb 16 06:52:53 2017	(r313801)
+++ stable/11/usr.sbin/arp/arp.c	Thu Feb 16 09:12:36 2017	(r313802)
@@ -319,7 +319,7 @@ set(int argc, char **argv)
 		return (1);
 	doing_proxy = flags = expire_time = 0;
 	while (argc-- > 0) {
-		if (strncmp(argv[0], "temp", 4) == 0) {
+		if (strcmp(argv[0], "temp") == 0) {
 			struct timespec tp;
 			int max_age;
 			size_t len = sizeof(max_age);
@@ -329,10 +329,10 @@ set(int argc, char **argv)
 			    &max_age, &len, NULL, 0) != 0)
 				err(1, "sysctlbyname");
 			expire_time = tp.tv_sec + max_age;
-		} else if (strncmp(argv[0], "pub", 3) == 0) {
+		} else if (strcmp(argv[0], "pub") == 0) {
 			flags |= RTF_ANNOUNCE;
 			doing_proxy = 1;
-			if (argc && strncmp(argv[1], "only", 3) == 0) {
+			if (argc && strcmp(argv[1], "only") == 0) {
 				/*
 				 * Compatibility: in pre FreeBSD 8 times
 				 * the "only" keyword used to mean that
@@ -341,29 +341,28 @@ set(int argc, char **argv)
 				 */
 				argc--; argv++;
 			}
-		} else if (strncmp(argv[0], "blackhole", 9) == 0) {
+		} else if (strcmp(argv[0], "blackhole") == 0) {
 			if (flags & RTF_REJECT) {
-				printf("Choose one of blackhole or reject, "
+				errx(1, "Choose one of blackhole or reject, "
 				    "not both.");
 			}
 			flags |= RTF_BLACKHOLE;
-		} else if (strncmp(argv[0], "reject", 6) == 0) {
+		} else if (strcmp(argv[0], "reject") == 0) {
 			if (flags & RTF_BLACKHOLE) {
-				printf("Choose one of blackhole or reject, "
+				errx(1, "Choose one of blackhole or reject, "
 				    "not both.");
 			}
 			flags |= RTF_REJECT;
-		} else if (strncmp(argv[0], "trail", 5) == 0) {
-			/* XXX deprecated and undocumented feature */
-			printf("%s: Sending trailers is no longer supported\n",
-			    host);
+		} else {
+			warnx("Invalid parameter '%s'", argv[0]);
+			usage();
 		}
 		argv++;
 	}
 	ea = (struct ether_addr *)LLADDR(&sdl_m);
 	if (doing_proxy && !strcmp(eaddr, "auto")) {
 		if (!get_ether_addr(dst->sin_addr.s_addr, ea)) {
-			printf("no interface found for %s\n",
+			warnx("no interface found for %s",
 			       inet_ntoa(dst->sin_addr));
 			return (1);
 		}
@@ -399,7 +398,7 @@ set(int argc, char **argv)
 	if ((sdl->sdl_family != AF_LINK) ||
 	    (rtm->rtm_flags & RTF_GATEWAY) ||
 	    !valid_type(sdl->sdl_type)) {
-		printf("cannot intuit interface index and type for %s\n", host);
+		warnx("cannot intuit interface index and type for %s", host);
 		return (1);
 	}
 	sdl_m.sdl_type = sdl->sdl_type;
@@ -487,7 +486,7 @@ delete(char *host)
 		 * is a proxy-arp entry to remove.
 		 */
 		if (flags & RTF_ANNOUNCE) {
-			fprintf(stderr, "delete: cannot locate %s\n", host);
+			warnx("delete: cannot locate %s", host);
 			return (1);
 		}
 
@@ -870,9 +869,8 @@ get_ether_addr(in_addr_t ipaddr, struct 
 	 */
 	dla = (struct sockaddr_dl *) &ifr->ifr_addr;
 	memcpy(hwaddr,  LLADDR(dla), dla->sdl_alen);
-	printf("using interface %s for proxy with address ",
-		ifp->ifr_name);
-	printf("%s\n", ether_ntoa(hwaddr));
+	printf("using interface %s for proxy with address %s\n", ifp->ifr_name,
+	    ether_ntoa(hwaddr));
 	retval = dla->sdl_alen;
 done:
 	close(sock);

From owner-svn-src-stable@freebsd.org  Thu Feb 16 09:19:31 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 021B2CE090B;
 Thu, 16 Feb 2017 09:19:31 +0000 (UTC)
 (envelope-from garga@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 mx1.freebsd.org (Postfix) with ESMTPS id D33F21234;
 Thu, 16 Feb 2017 09:19:30 +0000 (UTC)
 (envelope-from garga@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1G9JUje031571;
 Thu, 16 Feb 2017 09:19:30 GMT (envelope-from garga@FreeBSD.org)
Received: (from garga@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1G9JUTe031570;
 Thu, 16 Feb 2017 09:19:30 GMT (envelope-from garga@FreeBSD.org)
Message-Id: <201702160919.v1G9JUTe031570@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: garga set sender to
 garga@FreeBSD.org using -f
From: Renato Botelho <garga@FreeBSD.org>
Date: Thu, 16 Feb 2017 09:19:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313803 - stable/10/usr.sbin/arp
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 09:19:31 -0000

Author: garga (ports committer)
Date: Thu Feb 16 09:19:29 2017
New Revision: 313803
URL: https://svnweb.freebsd.org/changeset/base/313803

Log:
  MFC r313477:
  
  Cleanup on usr.sbin/arp/arp.c
  
  * 'blackhole' and 'reject' are mutually exclusive, replace printf() by errx()
    when both are selected.
  * 'trail' option is no longer supported since first import of arp from 4.4BSD.
    XXX message was added 13 years ago in r128192. I believe it's time to remove
    it.
  * Use warnx() to print some informative messages instead of printf()
  * Replace strncmp() by strcmp() when validating parameters and exit when invalid
    parameter is found
  
  Reviewed by:	allanjude, vangyzen, cem
  Approved by:	allanjude
  MFC after:	1 week
  Sponsored by:	Rubicon Communications (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D9504

Modified:
  stable/10/usr.sbin/arp/arp.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/arp/arp.c
==============================================================================
--- stable/10/usr.sbin/arp/arp.c	Thu Feb 16 09:12:36 2017	(r313802)
+++ stable/10/usr.sbin/arp/arp.c	Thu Feb 16 09:19:29 2017	(r313803)
@@ -319,7 +319,7 @@ set(int argc, char **argv)
 		return (1);
 	doing_proxy = flags = expire_time = 0;
 	while (argc-- > 0) {
-		if (strncmp(argv[0], "temp", 4) == 0) {
+		if (strcmp(argv[0], "temp") == 0) {
 			struct timespec tp;
 			int max_age;
 			size_t len = sizeof(max_age);
@@ -329,10 +329,10 @@ set(int argc, char **argv)
 			    &max_age, &len, NULL, 0) != 0)
 				err(1, "sysctlbyname");
 			expire_time = tp.tv_sec + max_age;
-		} else if (strncmp(argv[0], "pub", 3) == 0) {
+		} else if (strcmp(argv[0], "pub") == 0) {
 			flags |= RTF_ANNOUNCE;
 			doing_proxy = 1;
-			if (argc && strncmp(argv[1], "only", 3) == 0) {
+			if (argc && strcmp(argv[1], "only") == 0) {
 				/*
 				 * Compatibility: in pre FreeBSD 8 times
 				 * the "only" keyword used to mean that
@@ -341,29 +341,28 @@ set(int argc, char **argv)
 				 */
 				argc--; argv++;
 			}
-		} else if (strncmp(argv[0], "blackhole", 9) == 0) {
+		} else if (strcmp(argv[0], "blackhole") == 0) {
 			if (flags & RTF_REJECT) {
-				printf("Choose one of blackhole or reject, "
+				errx(1, "Choose one of blackhole or reject, "
 				    "not both.");
 			}
 			flags |= RTF_BLACKHOLE;
-		} else if (strncmp(argv[0], "reject", 6) == 0) {
+		} else if (strcmp(argv[0], "reject") == 0) {
 			if (flags & RTF_BLACKHOLE) {
-				printf("Choose one of blackhole or reject, "
+				errx(1, "Choose one of blackhole or reject, "
 				    "not both.");
 			}
 			flags |= RTF_REJECT;
-		} else if (strncmp(argv[0], "trail", 5) == 0) {
-			/* XXX deprecated and undocumented feature */
-			printf("%s: Sending trailers is no longer supported\n",
-			    host);
+		} else {
+			warnx("Invalid parameter '%s'", argv[0]);
+			usage();
 		}
 		argv++;
 	}
 	ea = (struct ether_addr *)LLADDR(&sdl_m);
 	if (doing_proxy && !strcmp(eaddr, "auto")) {
 		if (!get_ether_addr(dst->sin_addr.s_addr, ea)) {
-			printf("no interface found for %s\n",
+			warnx("no interface found for %s",
 			       inet_ntoa(dst->sin_addr));
 			return (1);
 		}
@@ -399,7 +398,7 @@ set(int argc, char **argv)
 	if ((sdl->sdl_family != AF_LINK) ||
 	    (rtm->rtm_flags & RTF_GATEWAY) ||
 	    !valid_type(sdl->sdl_type)) {
-		printf("cannot intuit interface index and type for %s\n", host);
+		warnx("cannot intuit interface index and type for %s", host);
 		return (1);
 	}
 	sdl_m.sdl_type = sdl->sdl_type;
@@ -487,7 +486,7 @@ delete(char *host)
 		 * is a proxy-arp entry to remove.
 		 */
 		if (flags & RTF_ANNOUNCE) {
-			fprintf(stderr, "delete: cannot locate %s\n", host);
+			warnx("delete: cannot locate %s", host);
 			return (1);
 		}
 
@@ -870,9 +869,8 @@ get_ether_addr(in_addr_t ipaddr, struct 
 	 */
 	dla = (struct sockaddr_dl *) &ifr->ifr_addr;
 	memcpy(hwaddr,  LLADDR(dla), dla->sdl_alen);
-	printf("using interface %s for proxy with address ",
-		ifp->ifr_name);
-	printf("%s\n", ether_ntoa(hwaddr));
+	printf("using interface %s for proxy with address %s\n", ifp->ifr_name,
+	    ether_ntoa(hwaddr));
 	retval = dla->sdl_alen;
 done:
 	close(sock);

From owner-svn-src-stable@freebsd.org  Thu Feb 16 17:07:21 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2EB9CE155C;
 Thu, 16 Feb 2017 17:07:21 +0000 (UTC)
 (envelope-from grehan@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 mx1.freebsd.org (Postfix) with ESMTPS id B29831F56;
 Thu, 16 Feb 2017 17:07:21 +0000 (UTC)
 (envelope-from grehan@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1GH7KR2024223;
 Thu, 16 Feb 2017 17:07:20 GMT (envelope-from grehan@FreeBSD.org)
Received: (from grehan@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1GH7KDq024222;
 Thu, 16 Feb 2017 17:07:20 GMT (envelope-from grehan@FreeBSD.org)
Message-Id: <201702161707.v1GH7KDq024222@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: grehan set sender to
 grehan@FreeBSD.org using -f
From: Peter Grehan <grehan@FreeBSD.org>
Date: Thu, 16 Feb 2017 17:07:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313811 - stable/11/usr.sbin/bhyve
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 17:07:22 -0000

Author: grehan
Date: Thu Feb 16 17:07:20 2017
New Revision: 313811
URL: https://svnweb.freebsd.org/changeset/base/313811

Log:
  MFC r311702
    Use correct PCI device id for virtio-rng.
    This prevented the device from attaching with a
    Windows guest (most other guests use the device type
    for matching)
  
    PR:   212711

Modified:
  stable/11/usr.sbin/bhyve/virtio.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/bhyve/virtio.h
==============================================================================
--- stable/11/usr.sbin/bhyve/virtio.h	Thu Feb 16 14:13:36 2017	(r313810)
+++ stable/11/usr.sbin/bhyve/virtio.h	Thu Feb 16 17:07:20 2017	(r313811)
@@ -209,7 +209,7 @@ struct vring_used {
 #define	VIRTIO_VENDOR		0x1AF4
 #define	VIRTIO_DEV_NET		0x1000
 #define	VIRTIO_DEV_BLOCK	0x1001
-#define	VIRTIO_DEV_RANDOM	0x1002
+#define	VIRTIO_DEV_RANDOM	0x1005
 
 /*
  * PCI config space constants.

From owner-svn-src-stable@freebsd.org  Thu Feb 16 17:08:45 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EADFCE1628;
 Thu, 16 Feb 2017 17:08:45 +0000 (UTC)
 (envelope-from grehan@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 mx1.freebsd.org (Postfix) with ESMTPS id F2CAF111D;
 Thu, 16 Feb 2017 17:08:44 +0000 (UTC)
 (envelope-from grehan@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1GH8iDD024333;
 Thu, 16 Feb 2017 17:08:44 GMT (envelope-from grehan@FreeBSD.org)
Received: (from grehan@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1GH8isV024332;
 Thu, 16 Feb 2017 17:08:44 GMT (envelope-from grehan@FreeBSD.org)
Message-Id: <201702161708.v1GH8isV024332@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: grehan set sender to
 grehan@FreeBSD.org using -f
From: Peter Grehan <grehan@FreeBSD.org>
Date: Thu, 16 Feb 2017 17:08:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313812 - stable/10/usr.sbin/bhyve
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 17:08:45 -0000

Author: grehan
Date: Thu Feb 16 17:08:43 2017
New Revision: 313812
URL: https://svnweb.freebsd.org/changeset/base/313812

Log:
  MFC r311702
    Use correct PCI device id for virtio-rng.
    This prevented the device from attaching with a
    Windows guest (most other guests use the device type
    for matching)
  
    PR:   212711

Modified:
  stable/10/usr.sbin/bhyve/virtio.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/bhyve/virtio.h
==============================================================================
--- stable/10/usr.sbin/bhyve/virtio.h	Thu Feb 16 17:07:20 2017	(r313811)
+++ stable/10/usr.sbin/bhyve/virtio.h	Thu Feb 16 17:08:43 2017	(r313812)
@@ -209,7 +209,7 @@ struct vring_used {
 #define	VIRTIO_VENDOR		0x1AF4
 #define	VIRTIO_DEV_NET		0x1000
 #define	VIRTIO_DEV_BLOCK	0x1001
-#define	VIRTIO_DEV_RANDOM	0x1002
+#define	VIRTIO_DEV_RANDOM	0x1005
 
 /*
  * PCI config space constants.

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:36:14 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 35401CE182C;
 Fri, 17 Feb 2017 00:36:14 +0000 (UTC) (envelope-from kib@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 mx1.freebsd.org (Postfix) with ESMTPS id 018811E36;
 Fri, 17 Feb 2017 00:36:13 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0aDjk008268;
 Fri, 17 Feb 2017 00:36:13 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0aDQB008267;
 Fri, 17 Feb 2017 00:36:13 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201702170036.v1H0aDQB008267@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:36:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313843 - stable/11/sys/sys
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:36:14 -0000

Author: kib
Date: Fri Feb 17 00:36:12 2017
New Revision: 313843
URL: https://svnweb.freebsd.org/changeset/base/313843

Log:
  MFC r313715:
  Order alphabetically.

Modified:
  stable/11/sys/sys/syscallsubr.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/sys/syscallsubr.h
==============================================================================
--- stable/11/sys/sys/syscallsubr.h	Thu Feb 16 23:38:30 2017	(r313842)
+++ stable/11/sys/sys/syscallsubr.h	Fri Feb 17 00:36:12 2017	(r313843)
@@ -145,8 +145,8 @@ int	kern_mkfifoat(struct thread *td, int
 int	kern_mknodat(struct thread *td, int fd, char *path,
 	    enum uio_seg pathseg, int mode, int dev);
 int	kern_msgctl(struct thread *, int, int, struct msqid_ds *);
-int	kern_msgsnd(struct thread *, int, const void *, size_t, int, long);
 int	kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *);
+int	kern_msgsnd(struct thread *, int, const void *, size_t, int, long);
 int     kern_nanosleep(struct thread *td, struct timespec *rqt,
 	    struct timespec *rmt);
 int	kern_ogetdirentries(struct thread *td, struct ogetdirentries_args *uap,

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:38:33 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82857CE18AB;
 Fri, 17 Feb 2017 00:38:33 +0000 (UTC) (envelope-from kib@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 mx1.freebsd.org (Postfix) with ESMTPS id 4F53E1FA3;
 Fri, 17 Feb 2017 00:38:33 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0cW6p008396;
 Fri, 17 Feb 2017 00:38:32 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0cWul008395;
 Fri, 17 Feb 2017 00:38:32 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201702170038.v1H0cWul008395@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:38:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313844 - stable/10/sys/sys
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:38:33 -0000

Author: kib
Date: Fri Feb 17 00:38:32 2017
New Revision: 313844
URL: https://svnweb.freebsd.org/changeset/base/313844

Log:
  MFC r313715:
  Order alphabetically.

Modified:
  stable/10/sys/sys/syscallsubr.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/sys/syscallsubr.h
==============================================================================
--- stable/10/sys/sys/syscallsubr.h	Fri Feb 17 00:36:12 2017	(r313843)
+++ stable/10/sys/sys/syscallsubr.h	Fri Feb 17 00:38:32 2017	(r313844)
@@ -158,8 +158,8 @@ int	kern_mknod(struct thread *td, char *
 int	kern_mknodat(struct thread *td, int fd, char *path,
 	    enum uio_seg pathseg, int mode, int dev);
 int	kern_msgctl(struct thread *, int, int, struct msqid_ds *);
-int	kern_msgsnd(struct thread *, int, const void *, size_t, int, long);
 int	kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *);
+int	kern_msgsnd(struct thread *, int, const void *, size_t, int, long);
 int     kern_nanosleep(struct thread *td, struct timespec *rqt,
 	    struct timespec *rmt);
 int	kern_ogetdirentries(struct thread *td, struct ogetdirentries_args *uap,

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:44:49 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0C44CE1B29;
 Fri, 17 Feb 2017 00:44:49 +0000 (UTC)
 (envelope-from emaste@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 mx1.freebsd.org (Postfix) with ESMTPS id 8D49F1564;
 Fri, 17 Feb 2017 00:44:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0imex012389;
 Fri, 17 Feb 2017 00:44:48 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0imZ8012388;
 Fri, 17 Feb 2017 00:44:48 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702170044.v1H0imZ8012388@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:44:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313845 - stable/11/usr.sbin/kldxref
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:44:49 -0000

Author: emaste
Date: Fri Feb 17 00:44:48 2017
New Revision: 313845
URL: https://svnweb.freebsd.org/changeset/base/313845

Log:
  MFC r313562: kldxref: s/sections/segments/ in warning message
  
  The message refers to program header segments, not sections.
  
  PR:		216975

Modified:
  stable/11/usr.sbin/kldxref/ef.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/kldxref/ef.c
==============================================================================
--- stable/11/usr.sbin/kldxref/ef.c	Fri Feb 17 00:38:32 2017	(r313844)
+++ stable/11/usr.sbin/kldxref/ef.c	Fri Feb 17 00:44:48 2017	(r313845)
@@ -600,7 +600,7 @@ ef_open(const char *filename, struct elf
 			    filename);
 			break;
 		} else if (nsegs > MAXSEGS) {
-			warnx("%s: too many sections", filename);
+			warnx("%s: too many segments", filename);
 			break;
 		}
 		ef->ef_nsegs = nsegs;

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:46:17 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 787DFCE1BA8;
 Fri, 17 Feb 2017 00:46:17 +0000 (UTC)
 (envelope-from emaste@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 mx1.freebsd.org (Postfix) with ESMTPS id 43BE116AD;
 Fri, 17 Feb 2017 00:46:17 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0kGUf012521;
 Fri, 17 Feb 2017 00:46:16 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0kGvb012520;
 Fri, 17 Feb 2017 00:46:16 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702170046.v1H0kGvb012520@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:46:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313846 - stable/11/usr.sbin/kldxref
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:46:17 -0000

Author: emaste
Date: Fri Feb 17 00:46:16 2017
New Revision: 313846
URL: https://svnweb.freebsd.org/changeset/base/313846

Log:
  MFC r313563: kldxref: bump MAXSEGS to 3
  
  ld.bfd generates two PT_LOAD segments, but certain linkers or linker
  configurations generate three PT_LOAD segments (one additional for
  RELRO).
  
  PR:		216975

Modified:
  stable/11/usr.sbin/kldxref/ef.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/kldxref/ef.c
==============================================================================
--- stable/11/usr.sbin/kldxref/ef.c	Fri Feb 17 00:44:48 2017	(r313845)
+++ stable/11/usr.sbin/kldxref/ef.c	Fri Feb 17 00:46:16 2017	(r313846)
@@ -47,7 +47,7 @@
 
 #include "ef.h"
 
-#define	MAXSEGS 2
+#define	MAXSEGS 3
 struct ef_file {
 	char*		ef_name;
 	struct elf_file *ef_efile;

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:47:45 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1ACF1CE1C23;
 Fri, 17 Feb 2017 00:47:45 +0000 (UTC)
 (envelope-from emaste@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 mx1.freebsd.org (Postfix) with ESMTPS id DB9B61806;
 Fri, 17 Feb 2017 00:47:44 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0lhvP012630;
 Fri, 17 Feb 2017 00:47:43 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0lhgZ012629;
 Fri, 17 Feb 2017 00:47:43 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702170047.v1H0lhgZ012629@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:47:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313847 - stable/10/usr.sbin/kldxref
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:47:45 -0000

Author: emaste
Date: Fri Feb 17 00:47:43 2017
New Revision: 313847
URL: https://svnweb.freebsd.org/changeset/base/313847

Log:
  MFC r313562: kldxref: s/sections/segments/ in warning message
  
  The message refers to program header segments, not sections.
  
  PR:		216975

Modified:
  stable/10/usr.sbin/kldxref/ef.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/kldxref/ef.c
==============================================================================
--- stable/10/usr.sbin/kldxref/ef.c	Fri Feb 17 00:46:16 2017	(r313846)
+++ stable/10/usr.sbin/kldxref/ef.c	Fri Feb 17 00:47:43 2017	(r313847)
@@ -600,7 +600,7 @@ ef_open(const char *filename, struct elf
 			    filename);
 			break;
 		} else if (nsegs > MAXSEGS) {
-			warnx("%s: too many sections", filename);
+			warnx("%s: too many segments", filename);
 			break;
 		}
 		ef->ef_nsegs = nsegs;

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:49:02 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8F9ECE1CA6;
 Fri, 17 Feb 2017 00:49:02 +0000 (UTC)
 (envelope-from emaste@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 mx1.freebsd.org (Postfix) with ESMTPS id 783701960;
 Fri, 17 Feb 2017 00:49:02 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0n1x2012748;
 Fri, 17 Feb 2017 00:49:01 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0n1j8012747;
 Fri, 17 Feb 2017 00:49:01 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201702170049.v1H0n1j8012747@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:49:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313848 - stable/10/usr.sbin/kldxref
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:49:02 -0000

Author: emaste
Date: Fri Feb 17 00:49:01 2017
New Revision: 313848
URL: https://svnweb.freebsd.org/changeset/base/313848

Log:
  MFC r313563: kldxref: bump MAXSEGS to 3
  
  ld.bfd generates two PT_LOAD segments, but certain linkers or linker
  configurations generate three PT_LOAD segments (one additional for
  RELRO).
  
  PR:		216975

Modified:
  stable/10/usr.sbin/kldxref/ef.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/kldxref/ef.c
==============================================================================
--- stable/10/usr.sbin/kldxref/ef.c	Fri Feb 17 00:47:43 2017	(r313847)
+++ stable/10/usr.sbin/kldxref/ef.c	Fri Feb 17 00:49:01 2017	(r313848)
@@ -47,7 +47,7 @@
 
 #include "ef.h"
 
-#define	MAXSEGS 2
+#define	MAXSEGS 3
 struct ef_file {
 	char*		ef_name;
 	struct elf_file *ef_efile;

From owner-svn-src-stable@freebsd.org  Fri Feb 17 00:50:01 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9E15CE1D46;
 Fri, 17 Feb 2017 00:50:01 +0000 (UTC)
 (envelope-from markj@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 mx1.freebsd.org (Postfix) with ESMTPS id 42AB11AC0;
 Fri, 17 Feb 2017 00:50:01 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H0o0Tv012865;
 Fri, 17 Feb 2017 00:50:00 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H0o0dX012863;
 Fri, 17 Feb 2017 00:50:00 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201702170050.v1H0o0dX012863@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Fri, 17 Feb 2017 00:50:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313849 - stable/11/sys/cddl/dev/dtrace/x86
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 00:50:01 -0000

Author: markj
Date: Fri Feb 17 00:50:00 2017
New Revision: 313849
URL: https://svnweb.freebsd.org/changeset/base/313849

Log:
  MFC r313133:
  Sync the x86 dis_tables.c with upstream.

Modified:
  stable/11/sys/cddl/dev/dtrace/x86/dis_tables.c
  stable/11/sys/cddl/dev/dtrace/x86/dis_tables.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/dev/dtrace/x86/dis_tables.c
==============================================================================
--- stable/11/sys/cddl/dev/dtrace/x86/dis_tables.c	Fri Feb 17 00:49:01 2017	(r313848)
+++ stable/11/sys/cddl/dev/dtrace/x86/dis_tables.c	Fri Feb 17 00:50:00 2017	(r313849)
@@ -21,7 +21,7 @@
  */
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright 2016 Joyent, Inc.
  */
 
 /*
@@ -87,6 +87,8 @@ typedef struct	instable {
 	uint_t		it_always64:1;		/* 64 bit when in 64 bit mode */
 	uint_t		it_invalid32:1;		/* invalid in IA32 */
 	uint_t		it_stackop:1;		/* push/pop stack operation */
+	uint_t		it_vexwoxmm:1;		/* VEX instructions that don't use XMM/YMM */
+	uint_t		it_avxsuf:1;		/* AVX suffix required */
 } instable_t;
 
 /*
@@ -219,6 +221,7 @@ enum {
 	VEX_NONE,	/* VEX  no operand */
 	VEX_MO,		/* VEX	mod_rm		               -> implicit reg */
 	VEX_RMrX,	/* VEX  VEX.vvvv, mod_rm               -> mod_reg */
+	VEX_VRMrX,	/* VEX  mod_rm, VEX.vvvv               -> mod_rm */
 	VEX_RRX,	/* VEX  VEX.vvvv, mod_reg              -> mod_rm */
 	VEX_RMRX,	/* VEX  VEX.vvvv, mod_rm, imm8[7:4]    -> mod_reg */
 	VEX_MX,         /* VEX  mod_rm                         -> mod_reg */
@@ -230,11 +233,16 @@ enum {
 	VEX_RR,         /* VEX  mod_rm                         -> mod_reg */
 	VEX_RRi,        /* VEX  mod_rm, imm8                   -> mod_reg */
 	VEX_RM,         /* VEX  mod_reg                        -> mod_rm */
+	VEX_RIM,	/* VEX  mod_reg, imm8                  -> mod_rm */
 	VEX_RRM,        /* VEX  VEX.vvvv, mod_reg              -> mod_rm */
 	VEX_RMX,        /* VEX  VEX.vvvv, mod_rm               -> mod_reg */
+	VEX_SbVM,	/* VEX  SIB, VEX.vvvv                  -> mod_rm */
 	VMx,		/* vmcall/vmlaunch/vmresume/vmxoff */
 	VMxo,		/* VMx instruction with optional prefix */
-	SVM		/* AMD SVM instructions */
+	SVM,		/* AMD SVM instructions */
+	BLS,		/* BLSR, BLSMSK, BLSI */
+	FMA,		/* FMA instructions, all VEX_RMrX */
+	ADX		/* ADX instructions, support REX.w, mod_rm->mod_reg */
 };
 
 /*
@@ -272,12 +280,14 @@ enum {
  *   IND - indirect to another to another table
  *   "T" - means to Terminate indirections (this is the final opcode)
  *   "S" - means "operand length suffix required"
+ *   "Sa" - means AVX2 suffix (d/q) required
  *   "NS" - means "no suffix" which is the operand length suffix of the opcode
  *   "Z" - means instruction size arg required
  *   "u" - means the opcode is invalid in IA32 but valid in amd64
  *   "x" - means the opcode is invalid in amd64, but not IA32
  *   "y" - means the operand size is always 64 bits in 64 bit mode
  *   "p" - means push/pop stack operation
+ *   "vr" - means VEX instruction that operates on normal registers, not fpu
  */
 
 #if defined(DIS_TEXT) && defined(DIS_MEM)
@@ -290,11 +300,13 @@ enum {
 #define	TNSyp(name, amode)	{TERM, amode, name, 0, 0, 0, 1, 0, 1}
 #define	TNSZ(name, amode, sz)	{TERM, amode, name, 0, sz, 0, 0, 0, 0}
 #define	TNSZy(name, amode, sz)	{TERM, amode, name, 0, sz, 0, 1, 0, 0}
+#define	TNSZvr(name, amode, sz)	{TERM, amode, name, 0, sz, 0, 0, 0, 0, 1}
 #define	TS(name, amode)		{TERM, amode, name, 1, 0, 0, 0, 0, 0}
 #define	TSx(name, amode)	{TERM, amode, name, 1, 0, 1, 0, 0, 0}
 #define	TSy(name, amode)	{TERM, amode, name, 1, 0, 0, 1, 0, 0}
 #define	TSp(name, amode)	{TERM, amode, name, 1, 0, 0, 0, 0, 1}
 #define	TSZ(name, amode, sz)	{TERM, amode, name, 1, sz, 0, 0, 0, 0}
+#define	TSaZ(name, amode, sz)	{TERM, amode, name, 1, sz, 0, 0, 0, 0, 0, 1}
 #define	TSZx(name, amode, sz)	{TERM, amode, name, 1, sz, 1, 0, 0, 0}
 #define	TSZy(name, amode, sz)	{TERM, amode, name, 1, sz, 0, 1, 0, 0}
 #define	INVALID			{TERM, UNKNOWN, "", 0, 0, 0, 0, 0}
@@ -308,11 +320,13 @@ enum {
 #define	TNSyp(name, amode)	{TERM, amode, name, 0, 0, 1, 0, 1}
 #define	TNSZ(name, amode, sz)	{TERM, amode, name, 0, 0, 0, 0, 0}
 #define	TNSZy(name, amode, sz)	{TERM, amode, name, 0, 0, 1, 0, 0}
+#define	TNSZvr(name, amode, sz)	{TERM, amode, name, 0, 0, 0, 0, 0, 1}
 #define	TS(name, amode)		{TERM, amode, name, 1, 0, 0, 0, 0}
 #define	TSx(name, amode)	{TERM, amode, name, 1, 1, 0, 0, 0}
 #define	TSy(name, amode)	{TERM, amode, name, 1, 0, 1, 0, 0}
 #define	TSp(name, amode)	{TERM, amode, name, 1, 0, 0, 0, 1}
 #define	TSZ(name, amode, sz)	{TERM, amode, name, 1, 0, 0, 0, 0}
+#define	TSaZ(name, amode, sz)	{TERM, amode, name, 1, 0, 0, 0, 0, 0, 1}
 #define	TSZx(name, amode, sz)	{TERM, amode, name, 1, 1, 0, 0, 0}
 #define	TSZy(name, amode, sz)	{TERM, amode, name, 1, 0, 1, 0, 0}
 #define	INVALID			{TERM, UNKNOWN, "", 0, 0, 0, 0, 0}
@@ -326,11 +340,13 @@ enum {
 #define	TNSx(name, amode)	{TERM, amode,  0, 1, 0, 0, 0}
 #define	TNSZ(name, amode, sz)	{TERM, amode, sz, 0, 0, 0, 0}
 #define	TNSZy(name, amode, sz)	{TERM, amode, sz, 0, 1, 0, 0}
+#define	TNSZvr(name, amode, sz)	{TERM, amode, sz, 0, 0, 0, 0, 1}
 #define	TS(name, amode)		{TERM, amode,  0, 0, 0, 0, 0}
 #define	TSx(name, amode)	{TERM, amode,  0, 1, 0, 0, 0}
 #define	TSy(name, amode)	{TERM, amode,  0, 0, 1, 0, 0}
 #define	TSp(name, amode)	{TERM, amode,  0, 0, 0, 0, 1}
 #define	TSZ(name, amode, sz)	{TERM, amode, sz, 0, 0, 0, 0}
+#define	TSaZ(name, amode, sz)	{TERM, amode, sz, 0, 0, 0, 0, 0, 1}
 #define	TSZx(name, amode, sz)	{TERM, amode, sz, 1, 0, 0, 0}
 #define	TSZy(name, amode, sz)	{TERM, amode, sz, 0, 1, 0, 0}
 #define	INVALID			{TERM, UNKNOWN, 0, 0, 0, 0, 0}
@@ -344,11 +360,13 @@ enum {
 #define	TNSx(name, amode)	{TERM, amode,  1, 0, 0, 0}
 #define	TNSZ(name, amode, sz)	{TERM, amode,  0, 0, 0, 0}
 #define	TNSZy(name, amode, sz)	{TERM, amode,  0, 1, 0, 0}
+#define	TNSZvr(name, amode, sz)	{TERM, amode,  0, 0, 0, 0, 1}
 #define	TS(name, amode)		{TERM, amode,  0, 0, 0, 0}
 #define	TSx(name, amode)	{TERM, amode,  1, 0, 0, 0}
 #define	TSy(name, amode)	{TERM, amode,  0, 1, 0, 0}
 #define	TSp(name, amode)	{TERM, amode,  0, 0, 0, 1}
 #define	TSZ(name, amode, sz)	{TERM, amode,  0, 0, 0, 0}
+#define	TSaZ(name, amode, sz)	{TERM, amode,  0, 0, 0, 0, 0, 1}
 #define	TSZx(name, amode, sz)	{TERM, amode,  1, 0, 0, 0}
 #define	TSZy(name, amode, sz)	{TERM, amode,  0, 1, 0, 0}
 #define	INVALID			{TERM, UNKNOWN, 0, 0, 0, 0}
@@ -399,6 +417,12 @@ const char *const dis_addr64_mode12[16] 
 const char *const dis_scale_factor[4] = { ")", ",2)", ",4)", ",8)" };
 
 /*
+ * decode for scale from VSIB byte, note that we always include the scale factor
+ * to match gas.
+ */
+const char *const dis_vscale_factor[4] = { ",1)", ",2)", ",4)", ",8)" };
+
+/*
  * register decoding for normal references to registers (ie. not addressing)
  */
 const char *const dis_REG8[16] = {
@@ -550,7 +574,7 @@ const instable_t dis_op0FC7[8] = {
 const instable_t dis_op0FC7m3[8] = {
 
 /*  [0]  */	INVALID,		INVALID,	INVALID,		INVALID,
-/*  [4]  */	INVALID,		INVALID,	TNS("rdrand",MG9),	INVALID,
+/*  [4]  */	INVALID,		INVALID,	TNS("rdrand",MG9),	TNS("rdseed", MG9),
 };
 
 /*
@@ -669,7 +693,7 @@ const instable_t dis_opSIMDdata16[256] =
 /*  [70]  */	TNSZ("pshufd",XMMP,16),	INVALID,		INVALID,		INVALID,
 /*  [74]  */	TNSZ("pcmpeqb",XMM,16),	TNSZ("pcmpeqw",XMM,16),	TNSZ("pcmpeqd",XMM,16),	INVALID,
 /*  [78]  */	TNSZ("extrq",XMM2I,16),	TNSZ("extrq",XMM,16), INVALID,		INVALID,
-/*  [7C]  */	INVALID,		INVALID,		TNSZ("movd",XMM3MXS,4),	TNSZ("movdqa",XMMS,16),
+/*  [7C]  */	TNSZ("haddpd",XMM,16),	TNSZ("hsubpd",XMM,16),	TNSZ("movd",XMM3MXS,4),	TNSZ("movdqa",XMMS,16),
 
 /*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -696,7 +720,7 @@ const instable_t dis_opSIMDdata16[256] =
 /*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
-/*  [D0]  */	INVALID,		TNSZ("psrlw",XMM,16),	TNSZ("psrld",XMM,16),	TNSZ("psrlq",XMM,16),
+/*  [D0]  */	TNSZ("addsubpd",XMM,16),TNSZ("psrlw",XMM,16),	TNSZ("psrld",XMM,16),	TNSZ("psrlq",XMM,16),
 /*  [D4]  */	TNSZ("paddq",XMM,16),	TNSZ("pmullw",XMM,16),	TNSZ("movq",XMMS,8),	TNS("pmovmskb",XMMX3),
 /*  [D8]  */	TNSZ("psubusb",XMM,16),	TNSZ("psubusw",XMM,16),	TNSZ("pminub",XMM,16),	TNSZ("pand",XMM,16),
 /*  [DC]  */	TNSZ("paddusb",XMM,16),	TNSZ("paddusw",XMM,16),	TNSZ("pmaxub",XMM,16),	TNSZ("pandn",XMM,16),
@@ -803,7 +827,7 @@ const instable_t dis_opSIMDrepnz[256] = 
 /*  [08]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
-/*  [10]  */	TNSZ("movsd",XMM,8),	TNSZ("movsd",XMMS,8),	INVALID,		INVALID,
+/*  [10]  */	TNSZ("movsd",XMM,8),	TNSZ("movsd",XMMS,8),	TNSZ("movddup",XMM,8),	INVALID,
 /*  [14]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [18]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [1C]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -836,7 +860,7 @@ const instable_t dis_opSIMDrepnz[256] = 
 /*  [70]  */	TNSZ("pshuflw",XMMP,16),INVALID,		INVALID,		INVALID,
 /*  [74]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [78]  */	TNSZ("insertq",XMMX2I,16),TNSZ("insertq",XMM,8),INVALID,		INVALID,
-/*  [7C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [7C]  */	TNSZ("haddps",XMM,16),	TNSZ("hsubps",XMM,16),	INVALID,		INVALID,
 
 /*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -863,7 +887,7 @@ const instable_t dis_opSIMDrepnz[256] = 
 /*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
-/*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D0]  */	TNSZ("addsubps",XMM,16),INVALID,		INVALID,		INVALID,
 /*  [D4]  */	INVALID,		INVALID,		TNS("movdq2q",XMMXM),	INVALID,
 /*  [D8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [DC]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -873,7 +897,7 @@ const instable_t dis_opSIMDrepnz[256] = 
 /*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
-/*  [F0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F0]  */	TNS("lddqu",XMMM),	INVALID,		INVALID,		INVALID,
 /*  [F4]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -961,6 +985,251 @@ const instable_t dis_opAVXF20F[256] = {
 /*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 };
 
+const instable_t dis_opAVXF20F3A[256] = {
+/*  [00]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [04]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [08]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [10]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [14]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [18]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [1C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [20]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [24]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [28]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [2C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [30]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [34]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [38]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [3C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [40]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [44]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [48]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [4C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [50]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [54]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [58]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [5C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [60]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [64]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [68]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [6C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [70]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [74]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [78]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [7C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [88]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [90]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [94]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [98]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [9C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [A0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [AC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [B0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [BC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [DC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [E0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [F0]  */	TNSZvr("rorx",VEX_MXI,6),INVALID,		INVALID,		INVALID,
+/*  [F4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+};
+
+const instable_t dis_opAVXF20F38[256] = {
+/*  [00]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [04]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [08]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [10]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [14]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [18]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [1C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [20]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [24]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [28]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [2C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [30]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [34]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [38]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [3C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [40]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [44]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [48]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [4C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [50]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [54]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [58]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [5C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [60]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [64]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [68]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [6C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [70]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [74]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [78]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [7C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [88]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [90]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [94]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [98]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [9C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [A0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [AC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [B0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [BC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [DC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [E0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [F0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F4]  */	INVALID,		TNSZvr("pdep",VEX_RMrX,5),TNSZvr("mulx",VEX_RMrX,5),TNSZvr("shrx",VEX_VRMrX,5),
+/*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+};
+
+const instable_t dis_opAVXF30F38[256] = {
+/*  [00]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [04]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [08]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [10]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [14]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [18]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [1C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [20]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [24]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [28]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [2C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [30]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [34]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [38]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [3C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [40]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [44]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [48]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [4C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [50]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [54]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [58]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [5C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [60]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [64]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [68]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [6C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [70]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [74]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [78]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [7C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [88]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [90]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [94]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [98]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [9C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [A0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [AC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [B0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [BC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [D8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [DC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [E0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+
+/*  [F0]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F4]  */	INVALID,		TNSZvr("pext",VEX_RMrX,5),INVALID,		TNSZvr("sarx",VEX_VRMrX,5),
+/*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+};
 /*
  *	Decode table for SIMD instructions with the repz (0xf3) prefix.
  */
@@ -970,8 +1239,8 @@ const instable_t dis_opSIMDrepz[256] = {
 /*  [08]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
-/*  [10]  */	TNSZ("movss",XMM,4),	TNSZ("movss",XMMS,4),	INVALID,		INVALID,
-/*  [14]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [10]  */	TNSZ("movss",XMM,4),	TNSZ("movss",XMMS,4),	TNSZ("movsldup",XMM,16),INVALID,
+/*  [14]  */	INVALID,		INVALID,		TNSZ("movshdup",XMM,16),INVALID,
 /*  [18]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [1C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
@@ -1023,7 +1292,7 @@ const instable_t dis_opSIMDrepz[256] = {
 /*  [B0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [B4]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [B8]  */	TS("popcnt",MRw),	INVALID,		INVALID,		INVALID,
-/*  [BC]  */	INVALID,		TS("lzcnt",MRw),	INVALID,		INVALID,
+/*  [BC]  */	TNSZ("tzcnt",MRw,5),	TS("lzcnt",MRw),	INVALID,		INVALID,
 
 /*  [C0]  */	INVALID,		INVALID,		TNSZ("cmpss",XMMP,4),	INVALID,
 /*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -1141,6 +1410,15 @@ const instable_t dis_op0F38F1[2] = {
 		TS("movbe",MOVBE),
 };
 
+/*
+ * The following table is used to distinguish between adox and adcx which share
+ * the same opcodes.
+ */
+const instable_t dis_op0F38F6[2] = {
+/*  [00]  */	TNS("adcx",ADX),
+		TNS("adox",ADX),
+};
+
 const instable_t dis_op0F38[256] = {
 /*  [00]  */	TNSZ("pshufb",XMM_66o,16),TNSZ("phaddw",XMM_66o,16),TNSZ("phaddd",XMM_66o,16),TNSZ("phaddsw",XMM_66o,16),
 /*  [04]  */	TNSZ("pmaddubsw",XMM_66o,16),TNSZ("phsubw",XMM_66o,16),	TNSZ("phsubd",XMM_66o,16),TNSZ("phsubsw",XMM_66o,16),
@@ -1204,8 +1482,8 @@ const instable_t dis_op0F38[256] = {
 
 /*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [C8]  */	TNSZ("sha1nexte",XMM,16),TNSZ("sha1msg1",XMM,16),TNSZ("sha1msg2",XMM,16),TNSZ("sha256rnds2",XMM,16),
+/*  [CC]  */	TNSZ("sha256msg1",XMM,16),TNSZ("sha256msg2",XMM,16),INVALID,		INVALID,
 
 /*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [D4]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -1217,7 +1495,7 @@ const instable_t dis_op0F38[256] = {
 /*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [F0]  */	IND(dis_op0F38F0),	IND(dis_op0F38F1),	INVALID,		INVALID,
-/*  [F4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F4]  */	INVALID,		INVALID,		IND(dis_op0F38F6),	INVALID,
 /*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 };
@@ -1229,7 +1507,7 @@ const instable_t dis_opAVX660F38[256] = 
 /*  [0C]  */	TNSZ("vpermilps",VEX_RMrX,8),TNSZ("vpermilpd",VEX_RMrX,16),TNSZ("vtestps",VEX_RRI,8),	TNSZ("vtestpd",VEX_RRI,16),
 
 /*  [10]  */	INVALID,		INVALID,		INVALID,		TNSZ("vcvtph2ps",VEX_MX,16),
-/*  [14]  */	INVALID,		INVALID,		INVALID,		TNSZ("vptest",VEX_RRI,16),
+/*  [14]  */	INVALID,		INVALID,		TNSZ("vpermps",VEX_RMrX,16),TNSZ("vptest",VEX_RRI,16),
 /*  [18]  */	TNSZ("vbroadcastss",VEX_MX,4),TNSZ("vbroadcastsd",VEX_MX,8),TNSZ("vbroadcastf128",VEX_MX,16),INVALID,
 /*  [1C]  */	TNSZ("vpabsb",VEX_MX,16),TNSZ("vpabsw",VEX_MX,16),TNSZ("vpabsd",VEX_MX,16),INVALID,
 
@@ -1239,18 +1517,18 @@ const instable_t dis_opAVX660F38[256] = 
 /*  [2C]  */	TNSZ("vmaskmovps",VEX_RMrX,8),TNSZ("vmaskmovpd",VEX_RMrX,16),TNSZ("vmaskmovps",VEX_RRM,8),TNSZ("vmaskmovpd",VEX_RRM,16),
 
 /*  [30]  */	TNSZ("vpmovzxbw",VEX_MX,16),TNSZ("vpmovzxbd",VEX_MX,16),TNSZ("vpmovzxbq",VEX_MX,16),TNSZ("vpmovzxwd",VEX_MX,16),
-/*  [34]  */	TNSZ("vpmovzxwq",VEX_MX,16),TNSZ("vpmovzxdq",VEX_MX,16),INVALID,	TNSZ("vpcmpgtq",VEX_RMrX,16),
+/*  [34]  */	TNSZ("vpmovzxwq",VEX_MX,16),TNSZ("vpmovzxdq",VEX_MX,16),TNSZ("vpermd",VEX_RMrX,16),TNSZ("vpcmpgtq",VEX_RMrX,16),
 /*  [38]  */	TNSZ("vpminsb",VEX_RMrX,16),TNSZ("vpminsd",VEX_RMrX,16),TNSZ("vpminuw",VEX_RMrX,16),TNSZ("vpminud",VEX_RMrX,16),
 /*  [3C]  */	TNSZ("vpmaxsb",VEX_RMrX,16),TNSZ("vpmaxsd",VEX_RMrX,16),TNSZ("vpmaxuw",VEX_RMrX,16),TNSZ("vpmaxud",VEX_RMrX,16),
 
 /*  [40]  */	TNSZ("vpmulld",VEX_RMrX,16),TNSZ("vphminposuw",VEX_MX,16),INVALID,	INVALID,
-/*  [44]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [44]  */	INVALID,		TSaZ("vpsrlv",VEX_RMrX,16),TNSZ("vpsravd",VEX_RMrX,16),TSaZ("vpsllv",VEX_RMrX,16),
 /*  [48]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [4C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
 /*  [50]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [54]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [58]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [58]  */	TNSZ("vpbroadcastd",VEX_MX,16),TNSZ("vpbroadcastq",VEX_MX,16),TNSZ("vbroadcasti128",VEX_MX,16),INVALID,
 /*  [5C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
 /*  [60]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -1260,28 +1538,28 @@ const instable_t dis_opAVX660F38[256] = 
 
 /*  [70]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [74]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [78]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [78]  */	TNSZ("vpbroadcastb",VEX_MX,16),TNSZ("vpbroadcastw",VEX_MX,16),INVALID,	INVALID,
 /*  [7C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
 /*  [80]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [84]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [88]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [8C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [8C]  */	TSaZ("vpmaskmov",VEX_RMrX,16),INVALID,		TSaZ("vpmaskmov",VEX_RRM,16),INVALID,
 
-/*  [90]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [94]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [98]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [9C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [90]  */	TNSZ("vpgatherd",VEX_SbVM,16),TNSZ("vpgatherq",VEX_SbVM,16),TNSZ("vgatherdp",VEX_SbVM,16),TNSZ("vgatherqp",VEX_SbVM,16),
+/*  [94]  */	INVALID,		INVALID,		TNSZ("vfmaddsub132p",FMA,16),TNSZ("vfmsubadd132p",FMA,16),
+/*  [98]  */	TNSZ("vfmadd132p",FMA,16),TNSZ("vfmadd132s",FMA,16),TNSZ("vfmsub132p",FMA,16),TNSZ("vfmsub132s",FMA,16),
+/*  [9C]  */	TNSZ("vfnmadd132p",FMA,16),TNSZ("vfnmadd132s",FMA,16),TNSZ("vfnmsub132p",FMA,16),TNSZ("vfnmsub132s",FMA,16),
 
 /*  [A0]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [A4]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [A8]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [AC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [A4]  */	INVALID,		INVALID,		TNSZ("vfmaddsub213p",FMA,16),TNSZ("vfmsubadd213p",FMA,16),
+/*  [A8]  */	TNSZ("vfmadd213p",FMA,16),TNSZ("vfmadd213s",FMA,16),TNSZ("vfmsub213p",FMA,16),TNSZ("vfmsub213s",FMA,16),
+/*  [AC]  */	TNSZ("vfnmadd213p",FMA,16),TNSZ("vfnmadd213s",FMA,16),TNSZ("vfnmsub213p",FMA,16),TNSZ("vfnmsub213s",FMA,16),
 
 /*  [B0]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [B4]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [B8]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [BC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [B4]  */	INVALID,		INVALID,		TNSZ("vfmaddsub231p",FMA,16),TNSZ("vfmsubadd231p",FMA,16),
+/*  [B8]  */	TNSZ("vfmadd231p",FMA,16),TNSZ("vfmadd231s",FMA,16),TNSZ("vfmsub231p",FMA,16),TNSZ("vfmsub231s",FMA,16),
+/*  [BC]  */	TNSZ("vfnmadd231p",FMA,16),TNSZ("vfnmadd231s",FMA,16),TNSZ("vfnmsub231p",FMA,16),TNSZ("vfnmsub231s",FMA,16),
 
 /*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -1298,7 +1576,7 @@ const instable_t dis_opAVX660F38[256] = 
 /*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [F0]  */	IND(dis_op0F38F0),	IND(dis_op0F38F1),	INVALID,		INVALID,
-/*  [F4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F4]  */	INVALID,		INVALID,		INVALID,		TNSZvr("shlx",VEX_VRMrX,5),
 /*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 };
@@ -1367,7 +1645,7 @@ const instable_t dis_op0F3A[256] = {
 /*  [C0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [C4]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [C8]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [CC]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [CC]  */	TNSZ("sha1rnds4",XMMP,16),INVALID,		INVALID,		INVALID,
 
 /*  [D0]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [D4]  */	INVALID,		INVALID,		INVALID,		INVALID,
@@ -1386,7 +1664,7 @@ const instable_t dis_op0F3A[256] = {
 };
 
 const instable_t dis_opAVX660F3A[256] = {
-/*  [00]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [00]  */	TNSZ("vpermq",VEX_MXI,16),TNSZ("vpermpd",VEX_MXI,16),TNSZ("vpblendd",VEX_RMRX,16),INVALID,
 /*  [04]  */	TNSZ("vpermilps",VEX_MXI,8),TNSZ("vpermilpd",VEX_MXI,16),TNSZ("vperm2f128",VEX_RMRX,16),INVALID,
 /*  [08]  */	TNSZ("vroundps",VEX_MXI,16),TNSZ("vroundpd",VEX_MXI,16),TNSZ("vroundss",VEX_RMRX,16),TNSZ("vroundsd",VEX_RMRX,16),
 /*  [0C]  */	TNSZ("vblendps",VEX_RMRX,16),TNSZ("vblendpd",VEX_RMRX,16),TNSZ("vpblendw",VEX_RMRX,16),TNSZ("vpalignr",VEX_RMRX,16),
@@ -1403,11 +1681,11 @@ const instable_t dis_opAVX660F3A[256] = 
 
 /*  [30]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [34]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [38]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [38]  */	TNSZ("vinserti128",VEX_RMRX,16),TNSZ("vextracti128",VEX_RIM,16),INVALID,		INVALID,
 /*  [3C]  */	INVALID,		INVALID,		INVALID,		INVALID,
 
 /*  [40]  */	TNSZ("vdpps",VEX_RMRX,16),TNSZ("vdppd",VEX_RMRX,16),TNSZ("vmpsadbw",VEX_RMRX,16),INVALID,
-/*  [44]  */	TNSZ("vpclmulqdq",VEX_RMRX,16),INVALID,		INVALID,		INVALID,
+/*  [44]  */	TNSZ("vpclmulqdq",VEX_RMRX,16),INVALID,		TNSZ("vperm2i128",VEX_RMRX,16),INVALID,
 /*  [48]  */	INVALID,		INVALID,		TNSZ("vblendvps",VEX_RMRX,8),	TNSZ("vblendvpd",VEX_RMRX,16),
 /*  [4C]  */	TNSZ("vpblendvb",VEX_RMRX,16),INVALID,		INVALID,		INVALID,
 
@@ -1468,6 +1746,15 @@ const instable_t dis_opAVX660F3A[256] = 
 };
 
 /*
+ * 	Decode table for 0x0F0D which uses the first byte of the mod_rm to
+ * 	indicate a sub-code.
+ */
+const instable_t dis_op0F0D[8] = {
+/*  [00]  */	INVALID,		TNS("prefetchw",PREF),	TNS("prefetchwt1",PREF),INVALID,
+/*  [04]  */	INVALID,		INVALID,		INVALID,		INVALID,
+};
+
+/*
  *	Decode table for 0x0F opcodes
  */
 
@@ -1476,7 +1763,7 @@ const instable_t dis_op0F[16][16] = {
 /*  [00]  */	IND(dis_op0F00),	IND(dis_op0F01),	TNS("lar",MR),		TNS("lsl",MR),
 /*  [04]  */	INVALID,		TNS("syscall",NORM),	TNS("clts",NORM),	TNS("sysret",NORM),
 /*  [08]  */	TNS("invd",NORM),	TNS("wbinvd",NORM),	INVALID,		TNS("ud2",NORM),
-/*  [0C]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [0C]  */	INVALID,		IND(dis_op0F0D),	INVALID,		INVALID,
 }, {
 /*  [10]  */	TNSZ("movups",XMMO,16),	TNSZ("movups",XMMOS,16),TNSZ("movlps",XMMO,8),	TNSZ("movlps",XMMOS,8),
 /*  [14]  */	TNSZ("unpcklps",XMMO,16),TNSZ("unpckhps",XMMO,16),TNSZ("movhps",XMMOM,8),TNSZ("movhps",XMMOMS,8),
@@ -1631,8 +1918,8 @@ const instable_t dis_opAVX0F[16][16] = {
 /*  [E8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [EC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 }, {
-/*  [F0]  */	INVALID,		INVALID,		INVALID,		INVALID,
-/*  [F4]  */	INVALID,		INVALID,		INVALID,		INVALID,
+/*  [F0]  */	INVALID,		INVALID,		TNSZvr("andn",VEX_RMrX,5),TNSZvr("bls",BLS,5),
+/*  [F4]  */	INVALID,		TNSZvr("bzhi",VEX_VRMrX,5),INVALID,		TNSZvr("bextr",VEX_VRMrX,5),
 /*  [F8]  */	INVALID,		INVALID,		INVALID,		INVALID,
 /*  [FC]  */	INVALID,		INVALID,		INVALID,		INVALID,
 } };
@@ -1795,19 +2082,19 @@ const instable_t dis_opFP1n2[8][8] = {
 /*  [2,0]  */	TNS("fiaddl",M),	TNS("fimull",M),	TNS("ficoml",M),	TNS("ficompl",M),
 /*  [2,4]  */	TNS("fisubl",M),	TNS("fisubrl",M),	TNS("fidivl",M),	TNS("fidivrl",M),
 }, {
-/*  [3,0]  */	TNS("fildl",M),		INVALID,		TNS("fistl",M),		TNS("fistpl",M),
+/*  [3,0]  */	TNS("fildl",M),		TNSZ("tisttpl",M,4),	TNS("fistl",M),		TNS("fistpl",M),
 /*  [3,4]  */	INVALID,		TNSZ("fldt",M,10),	INVALID,		TNSZ("fstpt",M,10),
 }, {
 /*  [4,0]  */	TNSZ("faddl",M,8),	TNSZ("fmull",M,8),	TNSZ("fcoml",M,8),	TNSZ("fcompl",M,8),
 /*  [4,1]  */	TNSZ("fsubl",M,8),	TNSZ("fsubrl",M,8),	TNSZ("fdivl",M,8),	TNSZ("fdivrl",M,8),
 }, {
-/*  [5,0]  */	TNSZ("fldl",M,8),	INVALID,		TNSZ("fstl",M,8),	TNSZ("fstpl",M,8),
+/*  [5,0]  */	TNSZ("fldl",M,8),	TNSZ("fisttpll",M,8),	TNSZ("fstl",M,8),	TNSZ("fstpl",M,8),
 /*  [5,4]  */	TNSZ("frstor",M,108),	INVALID,		TNSZ("fnsave",M,108),	TNSZ("fnstsw",M,2),
 }, {
 /*  [6,0]  */	TNSZ("fiadd",M,2),	TNSZ("fimul",M,2),	TNSZ("ficom",M,2),	TNSZ("ficomp",M,2),
 /*  [6,4]  */	TNSZ("fisub",M,2),	TNSZ("fisubr",M,2),	TNSZ("fidiv",M,2),	TNSZ("fidivr",M,2),
 }, {
-/*  [7,0]  */	TNSZ("fild",M,2),	INVALID,		TNSZ("fist",M,2),	TNSZ("fistp",M,2),
+/*  [7,0]  */	TNSZ("fild",M,2),	TNSZ("fisttp",M,2),	TNSZ("fist",M,2),	TNSZ("fistp",M,2),
 /*  [7,4]  */	TNSZ("fbld",M,10),	TNSZ("fildll",M,8),	TNSZ("fbstp",M,10),	TNSZ("fistpll",M,8),
 } };
 
@@ -2039,6 +2326,80 @@ static int isize64[] = {1, 2, 4, 8};
 #define	YMM_OPND	9	/* "value" used to indicate a ymm reg */
 
 /*
+ * The AVX2 gather instructions are a bit of a mess. While there's a pattern,
+ * there's not really a consistent scheme that we can use to know what the mode
+ * is supposed to be for a given type. Various instructions, like VPGATHERDD,
+ * always match the value of VEX_L. Other instructions like VPGATHERDQ, have
+ * some registers match VEX_L, but the VSIB is always XMM.
+ *
+ * The simplest way to deal with this is to just define a table based on the
+ * instruction opcodes, which are 0x90-0x93, so we subtract 0x90 to index into
+ * them.
+ *
+ * We further have to subdivide this based on the value of VEX_W and the value
+ * of VEX_L. The array is constructed to be indexed as:
+ * 	[opcode - 0x90][VEX_W][VEX_L].
+ */
+/* w = 0, 0x90 */
+typedef struct dis_gather_regs {
+	uint_t dgr_arg0;	/* src reg */
+	uint_t dgr_arg1;	/* vsib reg */
+	uint_t dgr_arg2;	/* dst reg */
+	char   *dgr_suffix;	/* suffix to append */
+} dis_gather_regs_t;
+
+static dis_gather_regs_t dis_vgather[4][2][2] = {
+	{
+		/* op 0x90, W.0 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "d" },
+			{ YMM_OPND, YMM_OPND, YMM_OPND, "d" }
+		},
+		/* op 0x90, W.1 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "q" },
+			{ YMM_OPND, XMM_OPND, YMM_OPND, "q" }
+		}
+	},
+	{
+		/* op 0x91, W.0 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "d" },
+			{ XMM_OPND, YMM_OPND, XMM_OPND, "d" },
+		},
+		/* op 0x91, W.1 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "q" },
+			{ YMM_OPND, YMM_OPND, YMM_OPND, "q" },
+		}
+	},
+	{
+		/* op 0x92, W.0 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "s" },
+			{ YMM_OPND, YMM_OPND, YMM_OPND, "s" }
+		},
+		/* op 0x92, W.1 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "d" },
+			{ YMM_OPND, XMM_OPND, YMM_OPND, "d" }
+		}
+	},
+	{
+		/* op 0x93, W.0 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "s" },
+			{ XMM_OPND, YMM_OPND, XMM_OPND, "s" }
+		},
+		/* op 0x93, W.1 */
+		{
+			{ XMM_OPND, XMM_OPND, XMM_OPND, "d" },
+			{ YMM_OPND, YMM_OPND, YMM_OPND, "d" }
+		}
+	}
+};
+
+/*
  * Get the next byte and separate the op code into the high and low nibbles.
  */
 static int
@@ -2409,16 +2770,29 @@ dtrace_get_operand(dis86_t *x, uint_t mo
 	} else {
 		uint_t need_paren = 0;
 		char **regs;
+		char **bregs;
+		const char *const *sf;
 		if (x->d86_mode == SIZE32) /* NOTE this is not addr_size! */
 			regs = (char **)dis_REG32;
 		else
 			regs = (char **)dis_REG64;
 
+		if (x->d86_vsib != 0) {
+			if (wbit == YMM_OPND) /* NOTE this is not addr_size! */
+				bregs = (char **)dis_YMMREG;
+			else
+				bregs = (char **)dis_XMMREG;
+			sf = dis_vscale_factor;
+		} else {
+			bregs = regs;
+			sf = dis_scale_factor;
+		}
+
 		/*
 		 * print the base (if any)
 		 */
 		if (base == EBP_REGNO && mode == 0) {
-			if (index != ESP_REGNO) {
+			if (index != ESP_REGNO || x->d86_vsib != 0) {
 				(void) strlcat(opnd, "(", OPLEN);
 				need_paren = 1;
 			}
@@ -2431,10 +2805,10 @@ dtrace_get_operand(dis86_t *x, uint_t mo
 		/*
 		 * print the index (if any)
 		 */
-		if (index != ESP_REGNO) {
+		if (index != ESP_REGNO || x->d86_vsib) {
 			(void) strlcat(opnd, ",", OPLEN);
-			(void) strlcat(opnd, regs[index], OPLEN);
-			(void) strlcat(opnd, dis_scale_factor[ss], OPLEN);
+			(void) strlcat(opnd, bregs[index], OPLEN);
+			(void) strlcat(opnd, sf[ss], OPLEN);
 		} else
 			if (need_paren)
 				(void) strlcat(opnd, ")", OPLEN);
@@ -2581,7 +2955,12 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 	uint_t vex_B = 1;
 	uint_t vex_W = 0;
 	uint_t vex_L;
+	dis_gather_regs_t *vreg;
 
+#ifdef	DIS_TEXT
+	/* Instruction name for BLS* family of instructions */
+	char *blsinstr;
+#endif
 
 	size_t	off;
 
@@ -2605,6 +2984,7 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 	x->d86_rex_prefix = 0;
 	x->d86_got_modrm = 0;
 	x->d86_memsize = 0;
+	x->d86_vsib = 0;
 
 	if (cpu_mode == SIZE16) {
 		opnd_size = SIZE16;
@@ -2802,6 +3182,10 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 					dp = (instable_t *)
 					    &dis_opAVXF30F
 					    [(opcode1 << 4) | opcode2];
+				} else if (vex_m == VEX_m_0F38) {
+					dp = (instable_t *)
+					    &dis_opAVXF30F38
+					    [(opcode1 << 4) | opcode2];
 				} else {
 					goto error;
 				}
@@ -2811,6 +3195,14 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 					dp = (instable_t *)
 					    &dis_opAVXF20F
 					    [(opcode1 << 4) | opcode2];
+				} else if (vex_m == VEX_m_0F3A) {
+					dp = (instable_t *)
+					    &dis_opAVXF20F3A
+					    [(opcode1 << 4) | opcode2];
+				} else if (vex_m == VEX_m_0F38) {
+					dp = (instable_t *)
+					    &dis_opAVXF20F38
+					    [(opcode1 << 4) | opcode2];
 				} else {
 					goto error;
 				}
@@ -2822,10 +3214,14 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 		}
 	}
 	if (vex_prefix) {
-		if (vex_L)
-			wbit = YMM_OPND;
-		else
-			wbit = XMM_OPND;
+		if (dp->it_vexwoxmm) {
+			wbit = LONG_OPND;
+		} else {
+			if (vex_L)
+				wbit = YMM_OPND;
+			else
+				wbit = XMM_OPND;
+		}
 	}
 
 	/*
@@ -2894,6 +3290,8 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 				goto error;
 #endif
 			switch (dp->it_adrmode) {
+				case XMMP:
+					break;
 				case XMMP_66r:
 				case XMMPRM_66r:
 				case XMM3PM_66r:
@@ -2935,11 +3333,50 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 					dp++;
 				}
 			}
+
+			/*
+			 * The adx family of instructions (adcx and adox)
+			 * continue the classic Intel tradition of abusing
+			 * arbitrary prefixes without actually meaning the
+			 * prefix bit. Therefore, if we find either the
+			 * opnd_size_prefix or rep_prefix we end up zeroing it
+			 * out after making our determination so as to ensure
+			 * that we don't get confused and accidentally print
+			 * repz prefixes and the like on these instructions.
+			 *
+			 * In addition, these instructions are actually much
+			 * closer to AVX instructions in semantics. Importantly,
+			 * they always default to having 32-bit operands.
+			 * However, if the CPU is in 64-bit mode, then and only
+			 * then, does it use REX.w promotes things to 64-bits
+			 * and REX.r allows 64-bit mode to use register r8-r15.
+			 */
+			if (dp->it_indirect == (instable_t *)dis_op0F38F6) {
+				dp = dp->it_indirect;
+				if (opnd_size_prefix == 0 &&
+				    rep_prefix == 0xf3) {
+					/* It is adox */
+					dp++;
+				} else if (opnd_size_prefix != 0x66 &&
+				    rep_prefix != 0) {
+					/* It isn't adcx */
+					goto error;
+				}
+				opnd_size_prefix = 0;
+				rep_prefix = 0;
+				opnd_size = SIZE32;
+				if (rex_prefix & REX_W)
+					opnd_size = SIZE64;
+			}
+
 #ifdef DIS_TEXT
 			if (strcmp(dp->it_name, "INVALID") == 0)
 				goto error;
 #endif
 			switch (dp->it_adrmode) {
+				case ADX:
+				case XMM:
+					break;
 				case RM_66r:
 				case XMM_66r:
 				case XMMM_66r:
@@ -3029,9 +3466,12 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 		goto error;
 
 	/*
-	 * deal with MMX/SSE opcodes which are changed by prefixes
+	 * Deal with MMX/SSE opcodes which are changed by prefixes. Note, we do
+	 * need to include UNKNOWN below, as we may have instructions that
+	 * actually have a prefix, but don't exist in any other form.
 	 */
 	switch (dp->it_adrmode) {
+	case UNKNOWN:
 	case MMO:
 	case MMOIMPL:
 	case MMO3P:
@@ -3220,7 +3660,10 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 		if (strcmp(dp->it_name, "INVALID") == 0)
 			goto error;
 		(void) strlcat(x->d86_mnem, dp->it_name, OPLEN);
-		if (dp->it_suffix) {
+		if (dp->it_avxsuf && dp->it_suffix) {
+			(void) strlcat(x->d86_mnem, vex_W != 0 ? "q" : "d",
+			    OPLEN);
+		} else if (dp->it_suffix) {
 			char *types[] = {"", "w", "l", "q"};
 			if (opcode_bytes == 2 && opcode4 == 4) {
 				/* It's a cmovx.yy. Replace the suffix x */
@@ -3341,6 +3784,7 @@ dtrace_disx86(dis86_t *x, uint_t cpu_mod
 
 	/* memory or register operand to register, with 'w' bit	*/
 	case MRw:
+	case ADX:
 		wbit = WBIT(opcode2);
 		STANDARD_MODRM(x, mode, reg, r_m, rex_prefix, wbit, 0);
 		break;
@@ -3640,6 +4084,18 @@ just_mem:
 #endif
 				NOMEM;
 				break;
+			} else if (r_m == 2) {
+#ifdef DIS_TEXT
+				(void) strncpy(x->d86_mnem, "clac", OPLEN);
+#endif
+				NOMEM;
+				break;
+			} else if (r_m == 3) {
+#ifdef DIS_TEXT
+				(void) strncpy(x->d86_mnem, "stac", OPLEN);
+#endif
+				NOMEM;
+				break;
 			} else {
 				goto error;
 			}
@@ -4337,11 +4793,31 @@ xmmprm:
 		dtrace_get_operand(x, mode, r_m, wbit, 0);
 		break;
 	case VEX_RMrX:
+	case FMA:
 		/* ModR/M.reg := op(VEX.vvvv, ModR/M.r/m) */
 		x->d86_numopnds = 3;
 		dtrace_get_modrm(x, &mode, &reg, &r_m);
 		dtrace_vex_adjust(vex_byte1, mode, &reg, &r_m);
 
+		/*
+		 * In classic Intel fashion, the opcodes for all of the FMA
+		 * instructions all have two possible mnemonics which vary by
+		 * one letter, which is selected based on the value of the wbit.
+		 * When wbit is one, they have the 'd' suffix and when 'wbit' is
+		 * 0, they have the 's' suffix. Otherwise, the FMA instructions
+		 * are all a standard VEX_RMrX.
+		 */
+#ifdef DIS_TEXT
+		if (dp->it_adrmode == FMA) {
+			size_t len = strlen(dp->it_name);
+			(void) strncpy(x->d86_mnem, dp->it_name, OPLEN);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Fri Feb 17 07:08:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B1B0CE245F;
 Fri, 17 Feb 2017 07:08:39 +0000 (UTC) (envelope-from jah@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 mx1.freebsd.org (Postfix) with ESMTPS id D9CA013AD;
 Fri, 17 Feb 2017 07:08:38 +0000 (UTC) (envelope-from jah@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1H78bAJ069152;
 Fri, 17 Feb 2017 07:08:37 GMT (envelope-from jah@FreeBSD.org)
Received: (from jah@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1H78bjt069150;
 Fri, 17 Feb 2017 07:08:37 GMT (envelope-from jah@FreeBSD.org)
Message-Id: <201702170708.v1H78bjt069150@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org
 using -f
From: "Jason A. Harmening" <jah@FreeBSD.org>
Date: Fri, 17 Feb 2017 07:08:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313862 - in stable/11/sys/i386: i386 include
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 07:08:39 -0000

Author: jah
Date: Fri Feb 17 07:08:37 2017
New Revision: 313862
URL: https://svnweb.freebsd.org/changeset/base/313862

Log:
  MFC r312952:
  
  Implement get_pcpu() for i386 and use it to replace pcpu_find(curcpu)
  in the i386 pmap.
  
  The curcpu macro loads the per-cpu data pointer as its first step,
  so the remaining steps of pcpu_find(curcpu) are circular.

Modified:
  stable/11/sys/i386/i386/pmap.c
  stable/11/sys/i386/include/pcpu.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/i386/pmap.c
==============================================================================
--- stable/11/sys/i386/i386/pmap.c	Fri Feb 17 06:49:54 2017	(r313861)
+++ stable/11/sys/i386/i386/pmap.c	Fri Feb 17 07:08:37 2017	(r313862)
@@ -441,7 +441,7 @@ pmap_bootstrap(vm_paddr_t firstaddr)
 	 * CMAP1/CMAP2 are used for zeroing and copying pages.
 	 * CMAP3 is used for the idle process page zeroing.
 	 */
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	mtx_init(&pc->pc_cmap_lock, "SYSMAPS", NULL, MTX_DEF);
 	SYSMAP(caddr_t, pc->pc_cmap_pte1, pc->pc_cmap_addr1, 1)
 	SYSMAP(caddr_t, pc->pc_cmap_pte2, pc->pc_cmap_addr2, 1)
@@ -4253,7 +4253,7 @@ pmap_zero_page(vm_page_t m)
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap_pte2 = pc->pc_cmap_pte2;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (*cmap_pte2)
@@ -4286,7 +4286,7 @@ pmap_zero_page_area(vm_page_t m, int off
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap_pte2 = pc->pc_cmap_pte2;
 	mtx_lock(&pc->pc_cmap_lock);
 	if (*cmap_pte2)
@@ -4337,7 +4337,7 @@ pmap_copy_page(vm_page_t src, vm_page_t 
 	struct pcpu *pc;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap_pte1 = pc->pc_cmap_pte1; 
 	cmap_pte2 = pc->pc_cmap_pte2;
 	mtx_lock(&pc->pc_cmap_lock);
@@ -4372,7 +4372,7 @@ pmap_copy_pages(vm_page_t ma[], vm_offse
 	int cnt;
 
 	sched_pin();
-	pc = pcpu_find(curcpu);
+	pc = get_pcpu();
 	cmap_pte1 = pc->pc_cmap_pte1; 
 	cmap_pte2 = pc->pc_cmap_pte2;
 	mtx_lock(&pc->pc_cmap_lock);
@@ -5368,7 +5368,7 @@ pmap_flush_page(vm_page_t m)
 	useclflushopt = (cpu_stdext_feature & CPUID_STDEXT_CLFLUSHOPT) != 0;
 	if (useclflushopt || (cpu_feature & CPUID_CLFSH) != 0) {
 		sched_pin();
-		pc = pcpu_find(curcpu);
+		pc = get_pcpu();
 		cmap_pte2 = pc->pc_cmap_pte2; 
 		mtx_lock(&pc->pc_cmap_lock);
 		if (*cmap_pte2)

Modified: stable/11/sys/i386/include/pcpu.h
==============================================================================
--- stable/11/sys/i386/include/pcpu.h	Fri Feb 17 06:49:54 2017	(r313861)
+++ stable/11/sys/i386/include/pcpu.h	Fri Feb 17 07:08:37 2017	(r313862)
@@ -76,6 +76,7 @@
 
 extern struct pcpu *pcpup;
 
+#define	get_pcpu()		(pcpup)
 #define	PCPU_GET(member)	(pcpup->pc_ ## member)
 #define	PCPU_ADD(member, val)	(pcpup->pc_ ## member += (val))
 #define	PCPU_INC(member)	PCPU_ADD(member, 1)
@@ -196,6 +197,15 @@ extern struct pcpu *pcpup;
 	}								\
 } while (0)
 
+#define	get_pcpu() __extension__ ({					\
+	struct pcpu *__pc;						\
+									\
+	__asm __volatile("movl %%fs:%1,%0"				\
+	    : "=r" (__pc)						\
+	    : "m" (*(struct pcpu *)(__pcpu_offset(pc_prvspace))));	\
+	__pc;								\
+})
+
 #define	PCPU_GET(member)	__PCPU_GET(pc_ ## member)
 #define	PCPU_ADD(member, val)	__PCPU_ADD(pc_ ## member, val)
 #define	PCPU_INC(member)	__PCPU_INC(pc_ ## member)

From owner-svn-src-stable@freebsd.org  Fri Feb 17 11:20:58 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBC26CE2C15;
 Fri, 17 Feb 2017 11:20:58 +0000 (UTC)
 (envelope-from bapt@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 mx1.freebsd.org (Postfix) with ESMTPS id B47471747;
 Fri, 17 Feb 2017 11:20:58 +0000 (UTC)
 (envelope-from bapt@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1HBKvR9070875;
 Fri, 17 Feb 2017 11:20:57 GMT (envelope-from bapt@FreeBSD.org)
Received: (from bapt@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1HBKuiw070857;
 Fri, 17 Feb 2017 11:20:56 GMT (envelope-from bapt@FreeBSD.org)
Message-Id: <201702171120.v1HBKuiw070857@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: bapt set sender to
 bapt@FreeBSD.org using -f
From: Baptiste Daroussin <bapt@FreeBSD.org>
Date: Fri, 17 Feb 2017 11:20:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313868 - in stable/11: bin/pwd bin/sh usr.bin/bc
 usr.bin/ctlstat usr.bin/env usr.bin/expand usr.bin/ipcrm usr.bin/mail
 usr.bin/mkimg usr.bin/mkuzip usr.bin/mt usr.bin/perror usr.bin/re...
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Feb 2017 11:20:59 -0000

Author: bapt
Date: Fri Feb 17 11:20:55 2017
New Revision: 313868
URL: https://svnweb.freebsd.org/changeset/base/313868

Log:
  MFC r313659-r313673
  
  r313659:
  Remove space at and of line
  
  Reported by:	make manlint
  MFC after:	2 days
  
  r313660:
  Remove empty Li
  
  Reported by:	make manlint
  MFC after:	2 days
  
  r313661:
  Escape Ss to avoid confusion by mdoc parser with the Ss macro
  
  Reported by:	make manlint
  MFC after:	2 days
  
  r313662:
  Add missing -width after -Bl -tag
  
  Reported by:	make manlint
  MFC after:	2 days
  
  r313663:
  Add missing section after .Xr reference
  
  r313664:
  Escape No to avoid confusion with the No macro
  
  r313665:
  Remove useless .Pp after the .Sh macro and remove empty line
  
  r313666:
  Remove empty space at EOL and escept Ed
  
  r313667:
  Remove spaces at EOL and sort correctly the SEE ALSO section
  
  r313668:
  Add missing section in manpage reference
  
  r313669:
  Properly use .An macro before Authors name
  
  r313670:
  Escape Sm to avoid confusion with Sm macro
  
  r313671:
  Use correct date format
  
  r313672:
  Remove useless Li macro
  
  r313673:
  Remove spaces at end of line
  
  Reported by:	make manlint

Modified:
  stable/11/bin/pwd/pwd.1
  stable/11/bin/sh/sh.1
  stable/11/usr.bin/bc/bc.1
  stable/11/usr.bin/ctlstat/ctlstat.8
  stable/11/usr.bin/env/env.1
  stable/11/usr.bin/expand/expand.1
  stable/11/usr.bin/ipcrm/ipcrm.1
  stable/11/usr.bin/mail/mail.1
  stable/11/usr.bin/mkimg/mkimg.1
  stable/11/usr.bin/mkuzip/mkuzip.8
  stable/11/usr.bin/mt/mt.1
  stable/11/usr.bin/perror/perror.1
  stable/11/usr.bin/revoke/revoke.1
  stable/11/usr.bin/sdiff/sdiff.1
  stable/11/usr.bin/units/units.1
  stable/11/usr.bin/unzip/unzip.1
  stable/11/usr.bin/uuencode/uuencode.1
  stable/11/usr.bin/whois/whois.1
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/pwd/pwd.1
==============================================================================
--- stable/11/bin/pwd/pwd.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/bin/pwd/pwd.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -87,7 +87,7 @@ utility conforms to
 .St -p1003.1-2001 .
 .Sh HISTORY
 The
-.Nm 
+.Nm
 command appeared in
 .At v5 .
 .Sh BUGS

Modified: stable/11/bin/sh/sh.1
==============================================================================
--- stable/11/bin/sh/sh.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/bin/sh/sh.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -1033,7 +1033,7 @@ The syntax of the
 command is:
 .Bd -unfilled -offset indent -compact
 .Ic case Ar word Ic in
-.Ar pattern Ns Li ) Ar list Li ;;
+.Ar pattern Ns ) Ar list Li ;;
 .Ar ...
 .Ic esac
 .Ed

Modified: stable/11/usr.bin/bc/bc.1
==============================================================================
--- stable/11/usr.bin/bc/bc.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/bc/bc.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -35,7 +35,7 @@
 .\"
 .\"	@(#)bc.1	6.8 (Berkeley) 8/8/91
 .\"
-.Dd November 21 2015 
+.Dd November 21, 2015
 .Dt BC 1
 .Os
 .Sh NAME

Modified: stable/11/usr.bin/ctlstat/ctlstat.8
==============================================================================
--- stable/11/usr.bin/ctlstat/ctlstat.8	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/ctlstat/ctlstat.8	Fri Feb 17 11:20:55 2017	(r313868)
@@ -1,7 +1,7 @@
-.\" 
+.\"
 .\" Copyright (c) 2010 Silicon Graphics International Corp.
 .\" All rights reserved.
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -13,7 +13,7 @@
 .\"    ("Disclaimer") and any redistribution must be conditioned upon
 .\"    including a substantially similar Disclaimer requirement for further
 .\"    binary redistribution.
-.\" 
+.\"
 .\" NO WARRANTY
 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 .\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
@@ -26,7 +26,7 @@
 .\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGES.
-.\" 
+.\"
 .\" ctlstat utility man page.
 .\"
 .\" Author: Ken Merry <ken@FreeBSD.org>

Modified: stable/11/usr.bin/env/env.1
==============================================================================
--- stable/11/usr.bin/env/env.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/env/env.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -133,7 +133,7 @@ is specified,
 prints out the names and values
 of the variables in the environment, with one name/value pair per line.
 .\"
-.Ss Details of Fl S Ss (split-string) processing
+.Ss Details of Fl S \&Ss (split-string) processing
 The processing of the
 .Fl S
 option will split the given

Modified: stable/11/usr.bin/expand/expand.1
==============================================================================
--- stable/11/usr.bin/expand/expand.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/expand/expand.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -81,7 +81,7 @@ If the
 .Fl a
 option is given, then tabs are inserted whenever they would compress the
 resultant file by replacing two or more characters.
-.It Fl t Sm Ar tab1 , tab2 , ... , tabn Sm
+.It Fl t \&Sm Ar tab1 , tab2 , ... , tabn \&Sm
 Set tab stops at column positions
 .Ar tab1 , tab2 , ... , tabn .
 If only a single number is given, tab stops are set that number of

Modified: stable/11/usr.bin/ipcrm/ipcrm.1
==============================================================================
--- stable/11/usr.bin/ipcrm/ipcrm.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/ipcrm/ipcrm.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -114,6 +114,9 @@ If the identifier or the key is -1, it w
 The wiping of all System V IPC objects was first implemented in
 .Fx 6.4 No and 7.1.
 .Sh AUTHORS
-The original author was Adam Glass.
-The wiping of all System V IPC objects was thought up by Callum
-Gibson and extended and implemented by Edwin Groothuis.
+The original author was
+.An Adam Glass .
+The wiping of all System V IPC objects was thought up by
+.An Callum Gibson
+and extended and implemented by
+.An Edwin Groothuis .

Modified: stable/11/usr.bin/mail/mail.1
==============================================================================
--- stable/11/usr.bin/mail/mail.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/mail/mail.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -1094,7 +1094,7 @@ Default is
 .Va save .
 .It Va searchheaders
 If this option is set, then a message-list specifier in the form
-.Dq Li / Ns Ar x Ns Li : Ns Ar y
+.Dq Li / Ns Ar x Ns : Ns Ar y
 will expand to all messages containing the substring
 .Ar y
 in the header field

Modified: stable/11/usr.bin/mkimg/mkimg.1
==============================================================================
--- stable/11/usr.bin/mkimg/mkimg.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/mkimg/mkimg.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -253,7 +253,7 @@ Directory to put temporary files in; def
 .Sh EXAMPLES
 To create a bootable disk image that is partitioned using the GPT scheme and
 containing a root file system that was previously created using
-.Xr makefs
+.Xr makefs 8
 and also containing a swap partition, run the
 .Nm
 utility as follows:

Modified: stable/11/usr.bin/mkuzip/mkuzip.8
==============================================================================
--- stable/11/usr.bin/mkuzip/mkuzip.8	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/mkuzip/mkuzip.8	Fri Feb 17 11:20:55 2017	(r313868)
@@ -58,7 +58,7 @@ works in two phases:
 An
 .Ar infile
 image is split into clusters; each cluster is compressed using
-.Xr zlib 3 
+.Xr zlib 3
 or
 .Xr lzma 3 .
 .It
@@ -72,7 +72,7 @@ The options are:
 Name of the output file
 .Ar outfile .
 The default is to use the input name with the suffix
-.Pa .uzip 
+.Pa .uzip
 for the
 .Xr zlib 3
 compression or
@@ -174,8 +174,8 @@ to handle resulting images correctly.
 .Sh SEE ALSO
 .Xr gzip 1 ,
 .Xr xz 1 ,
-.Xr zlib 3 ,
 .Xr lzma 3 ,
+.Xr zlib 3 ,
 .Xr geom 4 ,
 .Xr geom_uzip 4 ,
 .Xr md 4 ,

Modified: stable/11/usr.bin/mt/mt.1
==============================================================================
--- stable/11/usr.bin/mt/mt.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/mt/mt.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -273,12 +273,12 @@ status command, this will be the same XM
 .Do
 .Nm
 status
-.Fl x 
+.Fl x
 .Dc
 .El
 .It Cm param
 Display or set parameters.
-One of 
+One of
 .Fl l ,
 .Fl s ,
 or
@@ -293,7 +293,7 @@ To display a specific parameter, specify
 .It Fl p Ar name
 Specify the parameter name to list (with
 .Fl l )
-or set (with 
+or set (with
 .Fl s ) .
 .It Fl q
 Enable quiet mode for parameter listing.
@@ -361,11 +361,11 @@ The drive will verify the checksum befor
 .El
 .It Cm locate
 Set the tape drive's logical position.
-One of 
+One of
 .Fl b ,
 .Fl e ,
 .Fl f ,
-or 
+or
 .Fl s
 must be specified to indicate the type of position.
 If the partition number is specified, the drive will first relocate to the

Modified: stable/11/usr.bin/perror/perror.1
==============================================================================
--- stable/11/usr.bin/perror/perror.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/perror/perror.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -1,8 +1,8 @@
-.\" 
+.\"
 .\" Copyright (c) 2009 Hudson River Trading LLC
 .\" Written by: George V. Neville-Neil <gnn@FreeBSD.org>
 .\" All rights reserved.
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -11,7 +11,7 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 
+.\"
 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -23,7 +23,7 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\" 
+.\"
 .\" $FreeBSD$
 .\"
 .Dd May 12, 2009

Modified: stable/11/usr.bin/revoke/revoke.1
==============================================================================
--- stable/11/usr.bin/revoke/revoke.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/revoke/revoke.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -1,6 +1,6 @@
 .\" Copyright (c) 2009 Ed Schouten <ed@FreeBSD.org>
 .\" All rights reserved.
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -9,7 +9,7 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 
+.\"
 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -21,7 +21,7 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\" 
+.\"
 .\" $FreeBSD$
 .\"
 .Dd June 15, 2009
@@ -53,4 +53,4 @@ The
 program first appeared in
 .Fx 8.0 .
 .Sh AUTHORS
-.An Ed Schouten Aq Mt ed@FreeBSD.org
+.An \&Ed Schouten Aq Mt ed@FreeBSD.org

Modified: stable/11/usr.bin/sdiff/sdiff.1
==============================================================================
--- stable/11/usr.bin/sdiff/sdiff.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/sdiff/sdiff.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -167,8 +167,6 @@ The default is
 was written from scratch for the public domain by
 .An Ray Lai Aq ray@cyth.net .
 .Sh CAVEATS
-.Pp
 Tabs are treated as anywhere from one to eight characters wide,
 depending on the current column.
 Terminals that treat tabs as eight characters wide will look best.
-

Modified: stable/11/usr.bin/units/units.1
==============================================================================
--- stable/11/usr.bin/units/units.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/units/units.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -14,33 +14,33 @@
 .Sh OPTIONS
 The following options are available:
 .Bl -tag -width indent
-.It Fl h No , Fl -help
+.It Fl h \&No , Fl -help
 Show an overview of options
-.It Fl f Ar filename No , Fl -file Ar filename
+.It Fl f Ar filename \&No , Fl -file Ar filename
 Specify the name of the units data file to load.
-.It Fl H Ar filename No , Fl -historyfile Ar filename
+.It Fl H Ar filename \&No , Fl -historyfile Ar filename
 Ignored, for compatibility with GNU units.
 .It Fl e , Fl -exponential
 Behave as if -o '%6e' was typed.
-.It Fl q No , Fl -quiet
+.It Fl q \&No , Fl -quiet
 Suppress prompting of the user for units and the display of statistics
 about the number of units loaded.
-.It Fl U No , Fl -unitsfile
+.It Fl U \&No , Fl -unitsfile
 If the default unit file exists prints its location.
 If not, print
 .Qo
 Units data file not found
 .Qc
-.It Fl t No , Fl -terse
+.It Fl t \&No , Fl -terse
 Only print the result.  This is used when calling
 .Nm
 from other programs for easy to parse results.
-.It Fl v No , Fl -verbose
+.It Fl v \&No , Fl -verbose
 Print the units in the conversion output.
 Be more verbose in general.
-.It Fl o Ar format No , Fl -output-format Ar format
+.It Fl o Ar format \&No , Fl -output-format Ar format
 Select the output format string by which numbers are printed.
-.It Fl V No , Fl -version
+.It Fl V \&No , Fl -version
 Print the version number, usage, and then exit.
 .It Ar from-unit to-unit
 Allow a single unit conversion to be done directly from the command

Modified: stable/11/usr.bin/unzip/unzip.1
==============================================================================
--- stable/11/usr.bin/unzip/unzip.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/unzip/unzip.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -171,7 +171,7 @@ The
 utility is only able to process ZIP archives handled by
 .Xr libarchive 3 .
 Depending on the installed version of
-.Xr libarchive ,
+.Xr libarchive 3 ,
 this may or may not include self-extracting archives.
 .Sh SEE ALSO
 .Xr libarchive 3

Modified: stable/11/usr.bin/uuencode/uuencode.1
==============================================================================
--- stable/11/usr.bin/uuencode/uuencode.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/uuencode/uuencode.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -40,7 +40,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl m
-.Op Fl r 
+.Op Fl r
 .Op Fl o Ar output_file
 .Op Ar file
 .Ar name

Modified: stable/11/usr.bin/whois/whois.1
==============================================================================
--- stable/11/usr.bin/whois/whois.1	Fri Feb 17 11:17:56 2017	(r313867)
+++ stable/11/usr.bin/whois/whois.1	Fri Feb 17 11:20:55 2017	(r313868)
@@ -206,7 +206,7 @@ The operands specified to
 are treated independently and may be used
 as queries on different whois servers.
 .Sh ENVIRONMENT
-.Bl -tag
+.Bl -tag -width WHOIS_SERVER
 .It Ev WHOIS_SERVER
 The primary default whois server.
 If this is unset,

From owner-svn-src-stable@freebsd.org  Sat Feb 18 14:44:15 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E67ECCE3C7D;
 Sat, 18 Feb 2017 14:44:15 +0000 (UTC) (envelope-from dim@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 mx1.freebsd.org (Postfix) with ESMTPS id BEB681E74;
 Sat, 18 Feb 2017 14:44:15 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1IEiEw7048640;
 Sat, 18 Feb 2017 14:44:14 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1IEiE03048639;
 Sat, 18 Feb 2017 14:44:14 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702181444.v1IEiE03048639@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sat, 18 Feb 2017 14:44:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313916 - in stable: 10/contrib/libc++/include
 9/contrib/libc++/include
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 14:44:16 -0000

Author: dim
Date: Sat Feb 18 14:44:14 2017
New Revision: 313916
URL: https://svnweb.freebsd.org/changeset/base/313916

Log:
  Pull in r242377 from upstream libc++ trunk (by Marshall Clow):
  
    Make sure that __libcpp_compressed_pair_imp default-constructs its'
    members, rather than value-initializing them. Fixes PR#24137
  
  This ensures std::make_shared<>'s default constructor properly
  initializes to zero.
  
  Direct commit to stable/9 and stable/10, since stable/11 and head
  already have a newer version of libc++, including this fix.
  
  Reported by:	martin.beran@kernun.cz
  PR:		217200

Modified:
  stable/10/contrib/libc++/include/memory

Changes in other areas also in this revision:
Modified:
  stable/9/contrib/libc++/include/memory

Modified: stable/10/contrib/libc++/include/memory
==============================================================================
--- stable/10/contrib/libc++/include/memory	Sat Feb 18 11:43:13 2017	(r313915)
+++ stable/10/contrib/libc++/include/memory	Sat Feb 18 14:44:14 2017	(r313916)
@@ -1950,11 +1950,11 @@ public:
     typedef const typename remove_reference<_T1>::type& _T1_const_reference;
     typedef const typename remove_reference<_T2>::type& _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __first_(), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
-        : __first_(_VSTD::forward<_T1_param>(__t1)) {}
+        : __first_(_VSTD::forward<_T1_param>(__t1)), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
-        : __second_(_VSTD::forward<_T2_param>(__t2)) {}
+        : __first_(), __second_(_VSTD::forward<_T2_param>(__t2)) {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
         : __first_(_VSTD::forward<_T1_param>(__t1)), __second_(_VSTD::forward<_T2_param>(__t2)) {}
 
@@ -2043,9 +2043,9 @@ public:
     typedef const _T1&                                        _T1_const_reference;
     typedef const typename remove_reference<_T2>::type& _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
-        : _T1(_VSTD::forward<_T1_param>(__t1)) {}
+        : _T1(_VSTD::forward<_T1_param>(__t1)), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
         : __second_(_VSTD::forward<_T2_param>(__t2)) {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
@@ -2133,11 +2133,11 @@ public:
     typedef const typename remove_reference<_T1>::type& _T1_const_reference;
     typedef const _T2&                                        _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __first_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
         : __first_(_VSTD::forward<_T1_param>(__t1)) {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
-        : _T2(_VSTD::forward<_T2_param>(__t2)) {}
+        : _T2(_VSTD::forward<_T2_param>(__t2)), __first_() {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
         _NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
                    is_nothrow_move_constructible<_T2>::value)

From owner-svn-src-stable@freebsd.org  Sat Feb 18 14:44:15 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2721CE3C71;
 Sat, 18 Feb 2017 14:44:15 +0000 (UTC) (envelope-from dim@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 mx1.freebsd.org (Postfix) with ESMTPS id 8814C1E73;
 Sat, 18 Feb 2017 14:44:15 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1IEiEj6048634;
 Sat, 18 Feb 2017 14:44:14 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1IEiErW048633;
 Sat, 18 Feb 2017 14:44:14 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201702181444.v1IEiErW048633@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sat, 18 Feb 2017 14:44:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject: svn commit: r313916 - in stable: 10/contrib/libc++/include
 9/contrib/libc++/include
X-SVN-Group: stable-9
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 14:44:15 -0000

Author: dim
Date: Sat Feb 18 14:44:14 2017
New Revision: 313916
URL: https://svnweb.freebsd.org/changeset/base/313916

Log:
  Pull in r242377 from upstream libc++ trunk (by Marshall Clow):
  
    Make sure that __libcpp_compressed_pair_imp default-constructs its'
    members, rather than value-initializing them. Fixes PR#24137
  
  This ensures std::make_shared<>'s default constructor properly
  initializes to zero.
  
  Direct commit to stable/9 and stable/10, since stable/11 and head
  already have a newer version of libc++, including this fix.
  
  Reported by:	martin.beran@kernun.cz
  PR:		217200

Modified:
  stable/9/contrib/libc++/include/memory

Changes in other areas also in this revision:
Modified:
  stable/10/contrib/libc++/include/memory

Modified: stable/9/contrib/libc++/include/memory
==============================================================================
--- stable/9/contrib/libc++/include/memory	Sat Feb 18 11:43:13 2017	(r313915)
+++ stable/9/contrib/libc++/include/memory	Sat Feb 18 14:44:14 2017	(r313916)
@@ -1950,11 +1950,11 @@ public:
     typedef const typename remove_reference<_T1>::type& _T1_const_reference;
     typedef const typename remove_reference<_T2>::type& _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __first_(), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
-        : __first_(_VSTD::forward<_T1_param>(__t1)) {}
+        : __first_(_VSTD::forward<_T1_param>(__t1)), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
-        : __second_(_VSTD::forward<_T2_param>(__t2)) {}
+        : __first_(), __second_(_VSTD::forward<_T2_param>(__t2)) {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
         : __first_(_VSTD::forward<_T1_param>(__t1)), __second_(_VSTD::forward<_T2_param>(__t2)) {}
 
@@ -2043,9 +2043,9 @@ public:
     typedef const _T1&                                        _T1_const_reference;
     typedef const typename remove_reference<_T2>::type& _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
-        : _T1(_VSTD::forward<_T1_param>(__t1)) {}
+        : _T1(_VSTD::forward<_T1_param>(__t1)), __second_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
         : __second_(_VSTD::forward<_T2_param>(__t2)) {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
@@ -2133,11 +2133,11 @@ public:
     typedef const typename remove_reference<_T1>::type& _T1_const_reference;
     typedef const _T2&                                        _T2_const_reference;
 
-    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() {}
+    _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp() : __first_() {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T1_param __t1)
         : __first_(_VSTD::forward<_T1_param>(__t1)) {}
     _LIBCPP_INLINE_VISIBILITY explicit __libcpp_compressed_pair_imp(_T2_param __t2)
-        : _T2(_VSTD::forward<_T2_param>(__t2)) {}
+        : _T2(_VSTD::forward<_T2_param>(__t2)), __first_() {}
     _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
         _NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
                    is_nothrow_move_constructible<_T2>::value)

From owner-svn-src-stable@freebsd.org  Sat Feb 18 19:19:09 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B116FCE47E9;
 Sat, 18 Feb 2017 19:19:09 +0000 (UTC)
 (envelope-from avos@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 mx1.freebsd.org (Postfix) with ESMTPS id 88F811A67;
 Sat, 18 Feb 2017 19:19:09 +0000 (UTC)
 (envelope-from avos@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1IJJ86A059795;
 Sat, 18 Feb 2017 19:19:08 GMT (envelope-from avos@FreeBSD.org)
Received: (from avos@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1IJJ89d059794;
 Sat, 18 Feb 2017 19:19:08 GMT (envelope-from avos@FreeBSD.org)
Message-Id: <201702181919.v1IJJ89d059794@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avos set sender to
 avos@FreeBSD.org using -f
From: Andriy Voskoboinyk <avos@FreeBSD.org>
Date: Sat, 18 Feb 2017 19:19:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313921 - stable/11/sys/dev/iwi
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 19:19:09 -0000

Author: avos
Date: Sat Feb 18 19:19:08 2017
New Revision: 313921
URL: https://svnweb.freebsd.org/changeset/base/313921

Log:
  MFC r313694:
  iwi: add 12-14 2GHz channels into channel list.
  
  Return full channel list via iwi_getradiocaps() method
  (ieee80211_init_channels() was replaced with iwi_getradiocaps()
  to be consistent with other drivers).
  
  PR:		216923
  Submitted and tested by:	ds@ukrhub.net (original patch)

Modified:
  stable/11/sys/dev/iwi/if_iwi.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/iwi/if_iwi.c
==============================================================================
--- stable/11/sys/dev/iwi/if_iwi.c	Sat Feb 18 18:57:29 2017	(r313920)
+++ stable/11/sys/dev/iwi/if_iwi.c	Sat Feb 18 19:19:08 2017	(r313921)
@@ -130,6 +130,15 @@ static const struct iwi_ident iwi_ident_
 	{ 0, 0, NULL }
 };
 
+static const uint8_t def_chan_2ghz[] =
+	{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
+static const uint8_t def_chan_5ghz_band1[] =
+	{ 36, 40, 44, 48, 52, 56, 60, 64 };
+static const uint8_t def_chan_5ghz_band2[] =
+	{ 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 };
+static const uint8_t def_chan_5ghz_band3[] =
+	{ 149, 153, 157, 161, 165 };
+
 static struct ieee80211vap *iwi_vap_create(struct ieee80211com *,
 		    const char [IFNAMSIZ], int, enum ieee80211_opmode, int,
 		    const uint8_t [IEEE80211_ADDR_LEN],
@@ -204,6 +213,9 @@ static void	iwi_radio_off(void *, int);
 static void	iwi_sysctlattach(struct iwi_softc *);
 static void	iwi_led_event(struct iwi_softc *, int);
 static void	iwi_ledattach(struct iwi_softc *);
+static void	iwi_collect_bands(struct ieee80211com *, uint8_t [], size_t);
+static void	iwi_getradiocaps(struct ieee80211com *, int, int *,
+		    struct ieee80211_channel []);
 
 static int iwi_probe(device_t);
 static int iwi_attach(device_t);
@@ -271,7 +283,6 @@ iwi_attach(device_t dev)
 	struct iwi_softc *sc = device_get_softc(dev);
 	struct ieee80211com *ic = &sc->sc_ic;
 	uint16_t val;
-	uint8_t bands[IEEE80211_MODE_BYTES];
 	int i, error;
 
 	sc->sc_dev = dev;
@@ -374,12 +385,8 @@ iwi_attach(device_t dev)
 	ic->ic_macaddr[4] = val & 0xff;
 	ic->ic_macaddr[5] = val >> 8;
 
-	memset(bands, 0, sizeof(bands));
-	setbit(bands, IEEE80211_MODE_11B);
-	setbit(bands, IEEE80211_MODE_11G);
-	if (pci_get_device(dev) >= 0x4223) 
-		setbit(bands, IEEE80211_MODE_11A);
-	ieee80211_init_channels(ic, NULL, bands);
+	iwi_getradiocaps(ic, IEEE80211_CHAN_MAX, &ic->ic_nchans,
+	    ic->ic_channels);
 
 	ieee80211_ifattach(ic);
 	/* override default methods */
@@ -399,6 +406,7 @@ iwi_attach(device_t dev)
 	ic->ic_ioctl = iwi_ioctl;
 	ic->ic_transmit = iwi_transmit;
 	ic->ic_parent = iwi_parent;
+	ic->ic_getradiocaps = iwi_getradiocaps;
 
 	ieee80211_radiotap_attach(ic,
 	    &sc->sc_txtap.wt_ihdr, sizeof(sc->sc_txtap),
@@ -3569,3 +3577,40 @@ iwi_scan_end(struct ieee80211com *ic)
 		iwi_cmd(sc, IWI_CMD_ABORT_SCAN, NULL, 0);
 	IWI_UNLOCK(sc);
 }
+
+static void
+iwi_collect_bands(struct ieee80211com *ic, uint8_t bands[], size_t bands_sz)
+{
+	struct iwi_softc *sc = ic->ic_softc;
+	device_t dev = sc->sc_dev;
+
+	memset(bands, 0, bands_sz);
+	setbit(bands, IEEE80211_MODE_11B);
+	setbit(bands, IEEE80211_MODE_11G);
+	if (pci_get_device(dev) >= 0x4223)
+		setbit(bands, IEEE80211_MODE_11A);
+}
+
+static void
+iwi_getradiocaps(struct ieee80211com *ic,
+    int maxchans, int *nchans, struct ieee80211_channel chans[])
+{
+	uint8_t bands[IEEE80211_MODE_BYTES];
+
+	iwi_collect_bands(ic, bands, sizeof(bands));
+	*nchans = 0;
+	if (isset(bands, IEEE80211_MODE_11B) || isset(bands, IEEE80211_MODE_11G))
+		ieee80211_add_channel_list_2ghz(chans, maxchans, nchans,
+		    def_chan_2ghz, nitems(def_chan_2ghz), bands, 0);
+	if (isset(bands, IEEE80211_MODE_11A)) {
+		ieee80211_add_channel_list_5ghz(chans, maxchans, nchans,
+		    def_chan_5ghz_band1, nitems(def_chan_5ghz_band1),
+		    bands, 0);
+		ieee80211_add_channel_list_5ghz(chans, maxchans, nchans,
+		    def_chan_5ghz_band2, nitems(def_chan_5ghz_band2),
+		    bands, 0);
+		ieee80211_add_channel_list_5ghz(chans, maxchans, nchans,
+		    def_chan_5ghz_band3, nitems(def_chan_5ghz_band3),
+		    bands, 0);
+	}
+}

From owner-svn-src-stable@freebsd.org  Sat Feb 18 21:58:58 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A5CACE4AE1;
 Sat, 18 Feb 2017 21:58:58 +0000 (UTC) (envelope-from mm@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 mx1.freebsd.org (Postfix) with ESMTPS id 52BD91A6E;
 Sat, 18 Feb 2017 21:58:58 +0000 (UTC) (envelope-from mm@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1ILwvPg030020;
 Sat, 18 Feb 2017 21:58:57 GMT (envelope-from mm@FreeBSD.org)
Received: (from mm@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1ILwulu030007;
 Sat, 18 Feb 2017 21:58:56 GMT (envelope-from mm@FreeBSD.org)
Message-Id: <201702182158.v1ILwulu030007@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org
 using -f
From: Martin Matuska <mm@FreeBSD.org>
Date: Sat, 18 Feb 2017 21:58:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r313926 - in stable/11/contrib/libarchive/libarchive: .
 test
X-SVN-Group: stable-11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 21:58:58 -0000

Author: mm
Date: Sat Feb 18 21:58:56 2017
New Revision: 313926
URL: https://svnweb.freebsd.org/changeset/base/313926

Log:
  MFC r313572,313782
  Sync libarchive with vendor.
  
  MFC r313572:
    Vendor bugfixes:
      cpio reader sanity fix (OSS-Fuzz 504)
      WARC reader sanity fixes (OSS-Fuzz 511, 526, 532, 552)
      mtree reader time parsing fix (OSS-Fuzz 538)
      XAR reader memleak fix (OSS-Fuzz 551)
  
  MFC r313782:
    Vendor changes:
      Make SCHILY.acl.ace header more compact (NFSv4 ACLs)
  
    Vendor bugfixes:
      zip reader integer parsing fix (OSS-Fuzz 556)
      spelling fixes (issue #863)

Modified:
  stable/11/contrib/libarchive/libarchive/archive_acl.c
  stable/11/contrib/libarchive/libarchive/archive_entry.h
  stable/11/contrib/libarchive/libarchive/archive_entry_acl.3
  stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
  stable/11/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
  stable/11/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
  stable/11/contrib/libarchive/libarchive/archive_read_support_format_warc.c
  stable/11/contrib/libarchive/libarchive/archive_read_support_format_xar.c
  stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c
  stable/11/contrib/libarchive/libarchive/archive_write_disk_acl.c
  stable/11/contrib/libarchive/libarchive/archive_write_set_format_pax.c
  stable/11/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
  stable/11/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c
  stable/11/contrib/libarchive/libarchive/test/test_acl_text.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/libarchive/libarchive/archive_acl.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_acl.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_acl.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -83,6 +83,50 @@ static void	append_entry(char **p, const
 		    int tag, int flags, const char *name, int perm, int id);
 static void	append_id(char **p, int id);
 
+static const struct {
+	const int perm;
+	const char c;
+	const wchar_t wc;
+} nfsv4_acl_perm_map[] = {
+	{ ARCHIVE_ENTRY_ACL_READ_DATA | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, 'r',
+	    L'r' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_DATA | ARCHIVE_ENTRY_ACL_ADD_FILE, 'w',
+	    L'w' },
+	{ ARCHIVE_ENTRY_ACL_EXECUTE, 'x', L'x' },
+	{ ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY,
+	    'p', L'p' },
+	{ ARCHIVE_ENTRY_ACL_DELETE, 'd', L'd' },
+	{ ARCHIVE_ENTRY_ACL_DELETE_CHILD, 'D', L'D' },
+	{ ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, 'a', L'a' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, 'A', L'A' },
+	{ ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, 'R', L'R' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, 'W', L'W' },
+	{ ARCHIVE_ENTRY_ACL_READ_ACL, 'c', L'c' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_ACL, 'C', L'C' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_OWNER, 'o', L'o' },
+	{ ARCHIVE_ENTRY_ACL_SYNCHRONIZE, 's', L's' }
+};
+
+static const int nfsv4_acl_perm_map_size = (int)(sizeof(nfsv4_acl_perm_map) /
+    sizeof(nfsv4_acl_perm_map[0]));
+
+static const struct {
+	const int perm;
+	const char c;
+	const wchar_t wc;
+} nfsv4_acl_flag_map[] = {
+	{ ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, 'f', L'f' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, 'd', L'd' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, 'i', L'i' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, 'n', L'n' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, 'S', L'S' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, 'F', L'F' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, 'I', L'I' }
+};
+
+static const int nfsv4_acl_flag_map_size = (int)(sizeof(nfsv4_acl_flag_map) /
+    sizeof(nfsv4_acl_flag_map[0]));
+
 void
 archive_acl_clear(struct archive_acl *acl)
 {
@@ -741,6 +785,8 @@ static void
 append_entry_w(wchar_t **wp, const wchar_t *prefix, int type,
     int tag, int flags, const wchar_t *wname, int perm, int id)
 {
+	int i;
+
 	if (prefix != NULL) {
 		wcscpy(*wp, prefix);
 		*wp += wcslen(*wp);
@@ -810,46 +856,20 @@ append_entry_w(wchar_t **wp, const wchar
 		*(*wp)++ = (perm & 0222) ? L'w' : L'-';
 		*(*wp)++ = (perm & 0111) ? L'x' : L'-';
 	} else {
-		/* NFS4 ACL perms */
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_READ_DATA |
-		    ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? L'r' : L'-';
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_FILE)) ? L'w' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? L'x' : L'-';
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? L'p' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? L'd' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? L'D' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? L'a' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? L'A' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? L'R' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? L'W' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? L'c' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? L'C' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? L'o' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? L's' : L'-';
+		/* NFSv4 ACL perms */
+		for (i = 0; i < nfsv4_acl_perm_map_size; i++) {
+			if (perm & nfsv4_acl_perm_map[i].perm)
+				*(*wp)++ = nfsv4_acl_perm_map[i].wc;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*wp)++ = L'-';
+		}
 		*(*wp)++ = L':';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? L'f' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? L'd' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? L'i' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? L'n' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? L'S' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? L'F' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? L'I' : L'-';
+		for (i = 0; i < nfsv4_acl_flag_map_size; i++) {
+			if (perm & nfsv4_acl_flag_map[i].perm)
+				*(*wp)++ = nfsv4_acl_flag_map[i].wc;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*wp)++ = L'-';
+		}
 		*(*wp)++ = L':';
 		switch (type) {
 		case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
@@ -998,6 +1018,8 @@ static void
 append_entry(char **p, const char *prefix, int type,
     int tag, int flags, const char *name, int perm, int id)
 {
+	int i;
+
 	if (prefix != NULL) {
 		strcpy(*p, prefix);
 		*p += strlen(*p);
@@ -1067,47 +1089,20 @@ append_entry(char **p, const char *prefi
 		*(*p)++ = (perm & 0222) ? 'w' : '-';
 		*(*p)++ = (perm & 0111) ? 'x' : '-';
 	} else {
-		/* NFS4 ACL perms */
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_READ_DATA |
-		    ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? 'r' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_FILE)) ? 'w' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_EXECUTE)) ? 'x' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? 'p' : '-';
-		*(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? 'd' : '-';
-		*(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? 'D' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? 'a' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? 'A' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? 'R' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? 'W' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ACL) ? 'c' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ACL) ? 'C' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? 'o' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? 's' : '-';
+		/* NFSv4 ACL perms */
+		for (i = 0; i < nfsv4_acl_perm_map_size; i++) {
+			if (perm & nfsv4_acl_perm_map[i].perm)
+				*(*p)++ = nfsv4_acl_perm_map[i].c;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*p)++ = '-';
+		}
 		*(*p)++ = ':';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? 'f' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? 'd' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? 'i' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? 'n' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? 'S' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? 'F' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? 'I' : '-';
+		for (i = 0; i < nfsv4_acl_flag_map_size; i++) {
+			if (perm & nfsv4_acl_flag_map[i].perm)
+				*(*p)++ = nfsv4_acl_flag_map[i].c;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*p)++ = '-';
+		}
 		*(*p)++ = ':';
 		switch (type) {
 		case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
@@ -1467,11 +1462,8 @@ ismode_w(const wchar_t *start, const wch
 static int
 is_nfs4_perms_w(const wchar_t *start, const wchar_t *end, int *permset)
 {
-	const wchar_t *p;
+	const wchar_t *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch (*p++) {
 		case L'r':
@@ -1533,11 +1525,8 @@ is_nfs4_perms_w(const wchar_t *start, co
 static int
 is_nfs4_flags_w(const wchar_t *start, const wchar_t *end, int *permset)
 {
-	const wchar_t *p;
+	const wchar_t *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch(*p++) {
 		case L'f':
@@ -1945,11 +1934,8 @@ ismode(const char *start, const char *en
 static int
 is_nfs4_perms(const char *start, const char *end, int *permset)
 {
-	const char *p;
+	const char *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch (*p++) {
 		case 'r':
@@ -2011,11 +1997,8 @@ is_nfs4_perms(const char *start, const c
 static int
 is_nfs4_flags(const char *start, const char *end, int *permset)
 {
-	const char *p;
+	const char *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch(*p++) {
 		case 'f':

Modified: stable/11/contrib/libarchive/libarchive/archive_entry.h
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_entry.h	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_entry.h	Sat Feb 18 21:58:56 2017	(r313926)
@@ -509,6 +509,10 @@ __LA_DECL int	 archive_entry_acl_next_w(
  * ARCHIVE_ENTRY_ACL_STYLE_SOLARIS - Output only one colon after "other" and
  *    "mask" entries.
  *
+ * Flags only for archive entries with NFSv4 ACL:
+ * ARCHIVE_ENTRY_ACL_STYLE_COMPACT - Do not output the minus character for
+ *    unset permissions and flags in NFSv4 ACL permission and flag fields
+ *
  * Flags for for archive entries with POSIX.1e ACL or NFSv4 ACL:
  * ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID - Include extra numeric ID field in
  *    each ACL entry.
@@ -519,6 +523,7 @@ __LA_DECL int	 archive_entry_acl_next_w(
 #define	ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT	0x00000002
 #define	ARCHIVE_ENTRY_ACL_STYLE_SOLARIS		0x00000004
 #define	ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA	0x00000008
+#define	ARCHIVE_ENTRY_ACL_STYLE_COMPACT		0x00000010
 
 __LA_DECL wchar_t *archive_entry_acl_to_text_w(struct archive_entry *,
 	    ssize_t * /* len */, int /* flags */);

Modified: stable/11/contrib/libarchive/libarchive/archive_entry_acl.3
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_entry_acl.3	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_entry_acl.3	Sat Feb 18 21:58:56 2017	(r313926)
@@ -23,7 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd December 27, 2016
+.Dd February 15, 2017
 .Dt ARCHIVE_ENTRY_ACL 3
 .Os
 .Sh NAME
@@ -390,6 +390,13 @@ Prefix each default ACL entry with the w
 The mask and other ACLs don not contain a double colon.
 .El
 .Pp
+The following flags are effecive only on NFSv4 ACL:
+.Bl -tag -offset indent -compact -width ARCHIV
+.It Dv ARCHIVE_ENTRY_ACL_STYLE_COMPACT
+Do not output minus characters for unset permissions and flags in NFSv4 ACL
+permission and flag fields.
+.El
+.Pp
 The following flags are effective on both POSIX.1e and NFSv4 ACL:
 .Bl -tag -offset indent -compact -width ARCHIV
 .It Dv ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID

Modified: stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -618,9 +618,9 @@ setup_acls(struct archive_read_disk *a,
 /*
  * Translate system ACL permissions into libarchive internal structure
  */
-static struct {
-	int archive_perm;
-	int platform_perm;
+static const struct {
+	const int archive_perm;
+	const int platform_perm;
 } acl_perm_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 ACL permissions */
 	{ARCHIVE_ENTRY_ACL_EXECUTE, ACE_EXECUTE},
@@ -687,9 +687,9 @@ static struct {
 /*
  * Translate system NFSv4 inheritance flags into libarchive internal structure
  */
-static struct {
-	int archive_inherit;
-	int platform_inherit;
+static const struct {
+	const int archive_inherit;
+	const int platform_inherit;
 } acl_inherit_map[] = {
 #if HAVE_SUN_ACL	/* Solaris ACL inheritance flags */
 	{ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACE_FILE_INHERIT_ACE},
@@ -882,7 +882,7 @@ sun_acl_is_trivial(acl_t *acl, mode_t mo
 	/*
 	 * POSIX.1e ACLs marked with ACL_IS_TRIVIAL are compatible with
 	 * FreeBSD acl_is_trivial_np(). On Solaris they have 4 entries,
-	 * incuding mask.
+	 * including mask.
 	 */
 	if (acl->acl_type == ACLENT_T) {
 		if (acl->acl_cnt == 4)

Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -356,7 +356,7 @@ archive_read_format_cpio_read_header(str
     struct archive_entry *entry)
 {
 	struct cpio *cpio;
-	const void *h;
+	const void *h, *hl;
 	struct archive_string_conv *sconv;
 	size_t namelength;
 	size_t name_pad;
@@ -406,11 +406,11 @@ archive_read_format_cpio_read_header(str
 			    "Rejecting malformed cpio archive: symlink contents exceed 1 megabyte");
 			return (ARCHIVE_FATAL);
 		}
-		h = __archive_read_ahead(a,
+		hl = __archive_read_ahead(a,
 			(size_t)cpio->entry_bytes_remaining, NULL);
-		if (h == NULL)
+		if (hl == NULL)
 			return (ARCHIVE_FATAL);
-		if (archive_entry_copy_symlink_l(entry, (const char *)h,
+		if (archive_entry_copy_symlink_l(entry, (const char *)hl,
 		    (size_t)cpio->entry_bytes_remaining, sconv) != 0) {
 			if (errno == ENOMEM) {
 				archive_set_error(&a->archive, ENOMEM,
@@ -434,7 +434,7 @@ archive_read_format_cpio_read_header(str
 	 * header.  XXX */
 
 	/* Compare name to "TRAILER!!!" to test for end-of-archive. */
-	if (namelength == 11 && memcmp((const char *)h, "TRAILER!!!",
+	if (namelength == 11 && strncmp((const char *)h, "TRAILER!!!",
 	    11) == 0) {
 		/* TODO: Store file location of start of block. */
 		archive_clear_error(&a->archive);

Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -1608,8 +1608,11 @@ parse_keyword(struct archive_read *a, st
 			if (*val == '.') {
 				++val;
 				ns = (long)mtree_atol10(&val);
-			} else
-				ns = 0;
+				if (ns < 0)
+					ns = 0;
+				else if (ns > 999999999)
+					ns = 999999999;
+			}
 			if (m > my_time_t_max)
 				m = my_time_t_max;
 			else if (m < my_time_t_min)

Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_warc.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -134,8 +134,8 @@ static ssize_t _warc_rdlen(const char *b
 static time_t _warc_rdrtm(const char *buf, size_t bsz);
 static time_t _warc_rdmtm(const char *buf, size_t bsz);
 static const char *_warc_find_eoh(const char *buf, size_t bsz);
+static const char *_warc_find_eol(const char *buf, size_t bsz);
 
-
 int
 archive_read_support_format_warc(struct archive *_a)
 {
@@ -198,8 +198,8 @@ _warc_bid(struct archive_read *a, int be
 
 	/* otherwise snarf the record's version number */
 	ver = _warc_rdver(hdr, nrd);
-	if (ver == 0U || ver > 10000U) {
-		/* oh oh oh, best not to wager ... */
+	if (ver < 1200U || ver > 10000U) {
+		/* we only support WARC 0.12 to 1.0 */
 		return -1;
 	}
 
@@ -254,23 +254,32 @@ start_over:
 			&a->archive, ARCHIVE_ERRNO_MISC,
 			"Bad record header");
 		return (ARCHIVE_FATAL);
-	} else if ((ver = _warc_rdver(buf, eoh - buf)) > 10000U) {
-		/* nawww, I wish they promised backward compatibility
-		 * anyhoo, in their infinite wisdom the 28500 guys might
-		 * come up with something we can't possibly handle so
-		 * best end things here */
+	}
+	ver = _warc_rdver(buf, eoh - buf);
+	/* we currently support WARC 0.12 to 1.0 */
+	if (ver == 0U) {
 		archive_set_error(
 			&a->archive, ARCHIVE_ERRNO_MISC,
-			"Unsupported record version");
+			"Invalid record version");
 		return (ARCHIVE_FATAL);
-	} else if ((cntlen = _warc_rdlen(buf, eoh - buf)) < 0) {
+	} else if (ver < 1200U || ver > 10000U) {
+		archive_set_error(
+			&a->archive, ARCHIVE_ERRNO_MISC,
+			"Unsupported record version: %u.%u",
+			ver / 10000, (ver % 10000) / 100);
+		return (ARCHIVE_FATAL);
+	}
+	cntlen = _warc_rdlen(buf, eoh - buf);
+	if (cntlen < 0) {
 		/* nightmare!  the specs say content-length is mandatory
 		 * so I don't feel overly bad stopping the reader here */
 		archive_set_error(
 			&a->archive, EINVAL,
 			"Bad content length");
 		return (ARCHIVE_FATAL);
-	} else if ((rtime = _warc_rdrtm(buf, eoh - buf)) == (time_t)-1) {
+	}
+	rtime = _warc_rdrtm(buf, eoh - buf);
+	if (rtime == (time_t)-1) {
 		/* record time is mandatory as per WARC/1.0,
 		 * so just barf here, fast and loud */
 		archive_set_error(
@@ -284,7 +293,7 @@ start_over:
 	if (ver != w->pver) {
 		/* stringify this entry's version */
 		archive_string_sprintf(&w->sver,
-			"WARC/%u.%u", ver / 10000, ver % 10000);
+			"WARC/%u.%u", ver / 10000, (ver % 10000) / 100);
 		/* remember the version */
 		w->pver = ver;
 	}
@@ -577,51 +586,41 @@ out:
 }
 
 static unsigned int
-_warc_rdver(const char buf[10], size_t bsz)
+_warc_rdver(const char *buf, size_t bsz)
 {
 	static const char magic[] = "WARC/";
-	unsigned int ver;
-
-	(void)bsz; /* UNUSED */
+	unsigned int ver = 0U;
+	unsigned int end = 0U;
 
-	if (memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
-		/* nope */
-		return 99999U;
+	if (bsz < 12 || memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
+		/* buffer too small or invalid magic */
+		return ver;
 	}
 	/* looks good so far, read the version number for a laugh */
 	buf += sizeof(magic) - 1U;
-	/* most common case gets a quick-check here */
-	if (memcmp(buf, "1.0\r\n", 5U) == 0) {
-		ver = 10000U;
-	} else {
-		switch (*buf) {
-		case '0':
-		case '1':
-		case '2':
-		case '3':
-		case '4':
-		case '5':
-		case '6':
-		case '7':
-		case '8':
-			if (buf[1U] == '.') {
-				char *on;
-
-				/* set up major version */
-				ver = (buf[0U] - '0') * 10000U;
-				/* minor version, anyone? */
-				ver += (strtol(buf + 2U, &on, 10)) * 100U;
-				/* don't parse anything else */
-				if (on > buf + 2U) {
-					break;
-				}
-			}
-			/* FALLTHROUGH */
-		case '9':
-		default:
-			/* just make the version ridiculously high */
-			ver = 999999U;
-			break;
+
+	if (isdigit(buf[0U]) && (buf[1U] == '.') && isdigit(buf[2U])) {
+		/* we support a maximum of 2 digits in the minor version */
+		if (isdigit(buf[3U]))
+			end = 1U;
+		/* set up major version */
+		ver = (buf[0U] - '0') * 10000U;
+		/* set up minor version */
+		if (end == 1U) {
+			ver += (buf[2U] - '0') * 1000U;
+			ver += (buf[3U] - '0') * 100U;
+		} else
+			ver += (buf[2U] - '0') * 100U;
+		/*
+		 * WARC below version 0.12 has a space-separated header
+		 * WARC 0.12 and above terminates the version with a CRLF
+		 */
+		if (ver >= 1200U) {
+			if (memcmp(buf + 3U + end, "\r\n", 2U) != 0)
+				ver = 0U;
+		} else if (ver < 1200U) {
+			if (!isblank(*(buf + 3U + end)))
+				ver = 0U;
 		}
 	}
 	return ver;
@@ -631,34 +630,27 @@ static unsigned int
 _warc_rdtyp(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Type:";
-	const char *const eob = buf + bsz;
-	const char *val;
+	const char *val, *eol;
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
 		/* no bother */
 		return WT_NONE;
 	}
-	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return WT_NONE;
+	}
+
+	/* overread whitespace */
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
-	if (val + 8U > eob) {
-		;
-	} else if (memcmp(val, "resource", 8U) == 0) {
-		return WT_RSRC;
-	} else if (memcmp(val, "warcinfo", 8U) == 0) {
-		return WT_INFO;
-	} else if (memcmp(val, "metadata", 8U) == 0) {
-		return WT_META;
-	} else if (memcmp(val, "request", 7U) == 0) {
-		return WT_REQ;
-	} else if (memcmp(val, "response", 8U) == 0) {
-		return WT_RSP;
-	} else if (memcmp(val, "conversi", 8U) == 0) {
-		return WT_CONV;
-	} else if (memcmp(val, "continua", 8U) == 0) {
-		return WT_CONT;
+	if (val + 8U == eol) {
+		if (memcmp(val, "resource", 8U) == 0)
+			return WT_RSRC;
+		else if (memcmp(val, "response", 8U) == 0)
+			return WT_RSP;
 	}
 	return WT_NONE;
 }
@@ -667,10 +659,7 @@ static warc_string_t
 _warc_rduri(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Target-URI:";
-	const char *const eob = buf + bsz;
-	const char *val;
-	const char *uri;
-	const char *eol;
+	const char *val, *uri, *eol, *p;
 	warc_string_t res = {0U, NULL};
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
@@ -679,25 +668,32 @@ _warc_rduri(const char *buf, size_t bsz)
 	}
 	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return res;
+	}
+
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
 	/* overread URL designators */
-	if ((uri = xmemmem(val, eob - val, "://", 3U)) == NULL) {
+	if ((uri = xmemmem(val, eol - val, "://", 3U)) == NULL) {
 		/* not touching that! */
 		return res;
-	} else if ((eol = memchr(uri, '\n', eob - uri)) == NULL) {
-		/* no end of line? :O */
-		return res;
 	}
 
-	/* massage uri to point to after :// */
+	/* spaces inside uri are not allowed, CRLF should follow */
+	for (p = val; p < eol; p++) {
+		if (isspace(*p))
+			return res;
+	}
+
+	/* there must be at least space for ftp */
+	if (uri < (val + 3U))
+		return res;
+
+	/* move uri to point to after :// */
 	uri += 3U;
-	/* also massage eol to point to the first whitespace
-	 * after the last non-whitespace character before
-	 * the end of the line */
-	while (eol > uri && isspace((unsigned char)eol[-1]))
-		--eol;
 
 	/* now then, inspect the URI */
 	if (memcmp(val, "file", 4U) == 0) {
@@ -720,7 +716,7 @@ static ssize_t
 _warc_rdlen(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nContent-Length:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	long int len;
 
@@ -728,14 +724,24 @@ _warc_rdlen(const char *buf, size_t bsz)
 		/* no bother */
 		return -1;
 	}
-
-	/* strtol kindly overreads whitespace for us, so use that */
 	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return -1;
+	}
+
+	/* skip leading whitespace */
+	while (val < eol && isblank(*val))
+		val++;
+	/* there must be at least one digit */
+	if (!isdigit(*val))
+		return -1;
 	len = strtol(val, &on, 10);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
+	if (on != eol) {
+		/* line must end here */
 		return -1;
 	}
+
 	return (size_t)len;
 }
 
@@ -743,7 +749,7 @@ static time_t
 _warc_rdrtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Date:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -751,13 +757,17 @@ _warc_rdrtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -766,7 +776,7 @@ static time_t
 _warc_rdmtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nLast-Modified:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -774,13 +784,17 @@ _warc_rdmtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -797,4 +811,12 @@ _warc_find_eoh(const char *buf, size_t b
 	return hit;
 }
 
+static const char*
+_warc_find_eol(const char *buf, size_t bsz)
+{
+	static const char _marker[] = "\r\n";
+	const char *hit = xmemmem(buf, bsz, _marker, sizeof(_marker) - 1U);
+
+	return hit;
+}
 /* archive_read_support_format_warc.c ends here */

Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_xar.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -394,6 +394,7 @@ static void	checksum_update(struct archi
 		    size_t, const void *, size_t);
 static int	checksum_final(struct archive_read *, const void *,
 		    size_t, const void *, size_t);
+static void	checksum_cleanup(struct archive_read *);
 static int	decompression_init(struct archive_read *, enum enctype);
 static int	decompress(struct archive_read *, const void **,
 		    size_t *, const void *, size_t *);
@@ -923,6 +924,7 @@ xar_cleanup(struct archive_read *a)
 	int r;
 
 	xar = (struct xar *)(a->format->data);
+	checksum_cleanup(a);
 	r = decompression_cleanup(a);
 	hdlink = xar->hdlink_list;
 	while (hdlink != NULL) {
@@ -1720,6 +1722,16 @@ decompression_cleanup(struct archive_rea
 }
 
 static void
+checksum_cleanup(struct archive_read *a) {
+	struct xar *xar;
+
+	xar = (struct xar *)(a->format->data);
+
+	_checksum_final(&(xar->a_sumwrk), NULL, 0);
+	_checksum_final(&(xar->e_sumwrk), NULL, 0);
+}
+
+static void
 xmlattr_cleanup(struct xmlattr_list *list)
 {
 	struct xmlattr *attr, *next;

Modified: stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_read_support_format_zip.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -452,26 +452,38 @@ process_extra(struct archive_read *a, co
 			/* Zip64 extended information extra field. */
 			zip_entry->flags |= LA_USED_ZIP64;
 			if (zip_entry->uncompressed_size == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->uncompressed_size =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit uncompressed size");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->uncompressed_size = t;
 				offset += 8;
 				datasize -= 8;
 			}
 			if (zip_entry->compressed_size == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->compressed_size =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit compressed size");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->compressed_size = t;
 				offset += 8;
 				datasize -= 8;
 			}
 			if (zip_entry->local_header_offset == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->local_header_offset =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit local header offset");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->local_header_offset = t;
 				offset += 8;
 				datasize -= 8;
 			}
@@ -1156,11 +1168,18 @@ zip_read_data_none(struct archive_read *
 			|| (zip->hctx_valid
 			 && zip->entry->aes_extra.vendor == AES_VENDOR_AE_2))) {
 			if (zip->entry->flags & LA_USED_ZIP64) {
+				uint64_t compressed, uncompressed;
 				zip->entry->crc32 = archive_le32dec(p + 4);
-				zip->entry->compressed_size =
-					archive_le64dec(p + 8);
-				zip->entry->uncompressed_size =
-					archive_le64dec(p + 16);
+				compressed = archive_le64dec(p + 8);
+				uncompressed = archive_le64dec(p + 16);
+				if (compressed > INT64_MAX || uncompressed > INT64_MAX) {
+					archive_set_error(&a->archive,
+					    ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Overflow of 64-bit file sizes");
+					return ARCHIVE_FAILED;
+				}
+				zip->entry->compressed_size = compressed;
+				zip->entry->uncompressed_size = uncompressed;
 				zip->unconsumed = 24;
 			} else {
 				zip->entry->crc32 = archive_le32dec(p + 4);
@@ -1437,9 +1456,18 @@ zip_read_data_deflate(struct archive_rea
 			zip->unconsumed = 4;
 		}
 		if (zip->entry->flags & LA_USED_ZIP64) {
+			uint64_t compressed, uncompressed;
 			zip->entry->crc32 = archive_le32dec(p);
-			zip->entry->compressed_size = archive_le64dec(p + 4);
-			zip->entry->uncompressed_size = archive_le64dec(p + 12);
+			compressed = archive_le64dec(p + 4);
+			uncompressed = archive_le64dec(p + 12);
+			if (compressed > INT64_MAX || uncompressed > INT64_MAX) {
+				archive_set_error(&a->archive,
+				    ARCHIVE_ERRNO_FILE_FORMAT,
+				    "Overflow of 64-bit file sizes");
+				return ARCHIVE_FAILED;
+			}
+			zip->entry->compressed_size = compressed;
+			zip->entry->uncompressed_size = uncompressed;
 			zip->unconsumed += 20;
 		} else {
 			zip->entry->crc32 = archive_le32dec(p);

Modified: stable/11/contrib/libarchive/libarchive/archive_write_disk_acl.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_write_disk_acl.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_write_disk_acl.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -101,7 +101,7 @@ archive_write_disk_set_acls(struct archi
 			    ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT,
 			    "default");
 #endif	/* !HAVE_SUN_ACL */
-		/* Simultaeous POSIX.1e and NFSv4 is not supported */
+		/* Simultaneous POSIX.1e and NFSv4 is not supported */
 		return (ret);
 	}
 #endif	/* !HAVE_DARWIN_ACL */
@@ -119,9 +119,9 @@ archive_write_disk_set_acls(struct archi
 /*
  * Translate system ACL permissions into libarchive internal structure
  */
-static struct {
-	int archive_perm;
-	int platform_perm;
+static const struct {
+	const int archive_perm;
+	const int platform_perm;
 } acl_perm_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 ACL permissions */
 	{ARCHIVE_ENTRY_ACL_EXECUTE, ACE_EXECUTE},
@@ -188,9 +188,9 @@ static struct {
 /*
  * Translate system NFSv4 inheritance flags into libarchive internal structure
  */
-static struct {
-	int archive_inherit;
-	int platform_inherit;
+static const struct {
+	const int archive_inherit;
+	const int platform_inherit;
 } acl_inherit_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 inheritance flags */
 	{ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACE_FILE_INHERIT_ACE},

Modified: stable/11/contrib/libarchive/libarchive/archive_write_set_format_pax.c
==============================================================================
--- stable/11/contrib/libarchive/libarchive/archive_write_set_format_pax.c	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/archive_write_set_format_pax.c	Sat Feb 18 21:58:56 2017	(r313926)
@@ -1166,7 +1166,8 @@ archive_write_pax_header(struct archive_
 		if ((acl_types & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
 			ret = add_pax_acl(a, entry_original, pax,
 			    ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
-			    ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA);
+			    ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA |
+			    ARCHIVE_ENTRY_ACL_STYLE_COMPACT);
 			if (ret == ARCHIVE_FATAL)
 				return (ARCHIVE_FATAL);
 		}

Modified: stable/11/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
==============================================================================
--- stable/11/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu	Sat Feb 18 21:47:32 2017	(r313925)
+++ stable/11/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu	Sat Feb 18 21:58:56 2017	(r313926)
@@ -1,8 +1,8 @@
 begin 644 test_acl_pax_nfs4.tar
 M4&%X2&5A9&5R+V9I;&4`````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M`````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,C`R
-M(#`P,#`P,#`P,#`P(#`Q,C`P,0`@>```````````````````````````````
+M`````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,3,R
+M(#`P,#`P,#`P,#`P(#`Q,C`P,P`@>```````````````````````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````!U<W1A<@`P,```````
 M````````````````````````````````````````````````````````````
@@ -10,10 +10,10 @@ M```````````````````P,#`P,#`@`#`P,#`P,"`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M```````````````````````Q,S`@4T-(24Q9+F%C;"YA8V4];W=N97)`.G)W
-M>'`M+6%!4E=C0V]S.BTM+2TM+2TZ86QL;W<L9W)O=7!`.G)W+7`M+6$M4BUC
-M+2US.BTM+2TM+2TZ86QL;W<L979E<GEO;F5`.G(M+2TM+6$M4BUC+2US.BTM
-M+2TM+2TZ86QL;W<*````````````````````````````````````````````
+M```````````````````````Y,"!30TA)3%DN86-L+F%C93UO=VYE<D`Z<G=X
+M<&%!4E=C0V]S.CIA;&QO=RQG<F]U<$`Z<G=P85)C<SHZ86QL;W<L979E<GEO
+M;F5`.G)A4F-S.CIA;&QO=PH`````````````````````````````````````
+M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
@@ -36,7 +36,7 @@ M```````````````````````````````````````
 M````````4&%X2&5A9&5R+V9I;&4`````````````````````````````````
 M````````````````````````````````````````````````````````````
 M`````````````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P
-M,#`P-#`V(#`P,#`P,#`P,#`P(#`Q,C`P-P`@>```````````````````````
+M,#`P,C4V(#`P,#`P,#`P,#`P(#`Q,C`Q,@`@>```````````````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````````````!U<W1A<@`P
 M,```````````````````````````````````````````````````````````
@@ -44,13 +44,13 @@ M```````````````````````````P,#`P,#`@`#`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M```````````````````````````````R-C(@4T-(24Q9+F%C;"YA8V4];W=N
-M97)`.G)W+7`M+6%!4E=C0V]S.BTM+2TM+2TZ86QL;W<L=7-E<CIU<V5R-S<Z
-M<BTM+2TM82U2+6,M+7,Z+2TM+2TM23IA;&QO=SHW-RQU<V5R.G5S97(W.#IR
-M=W@M+2TM+2TM+2TM+3HM+2TM+2TM.F1E;GDZ-S@L9W)O=7!`.G)W+7`M+6$M
-M4BUC+2US.BTM+2TM+2TZ86QL;W<L9W)O=7`Z9W)O=7`W.#HM=RUP+2TM02U7
-M+4-O+3HM+2TM+2TM.F1E;GDZ-S@L979E<GEO;F5`.G(M+2TM+6$M4BUC+2US
-M.BTM+2TM+2TZ86QL;W<*````````````````````````````````````````
+M```````````````````````````````Q-S0@4T-(24Q9+F%C;"YA8V4];W=N
+M97)`.G)W<&%!4E=C0V]S.CIA;&QO=RQU<V5R.G5S97(W-SIR85)C<SI).F%L
+M;&]W.C<W+'5S97(Z=7-E<C<X.G)W>#HZ9&5N>3HW."QG<F]U<$`Z<G=P85)C
+M<SHZ86QL;W<L9W)O=7`Z9W)O=7`W.#IW<$%70V\Z.F1E;GDZ-S@L979E<GEO
+M;F5`.G)A4F-S.CIA;&QO=PH`````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
@@ -70,7 +70,7 @@ M```````````````````````````````````````
 M````````````````4&%X2&5A9&5R+V9I;&4`````````````````````````
 M````````````````````````````````````````````````````````````
 M`````````````````````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@
-M`#`P,#`P,#`P-#$P(#`P,#`P,#`P,#`P(#`Q,C`P,@`@>```````````````
+M`#`P,#`P,#`P,C8R(#`P,#`P,#`P,#`P(#`Q,C`P-P`@>```````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````````````````````!U
 M<W1A<@`P,```````````````````````````````````````````````````
@@ -78,13 +78,13 @@ M```````````````````````````````````P,#`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Sat Feb 18 21:59:21 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D66F6CE4BCC;
 Sat, 18 Feb 2017 21:59:21 +0000 (UTC) (envelope-from mm@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 mx1.freebsd.org (Postfix) with ESMTPS id 9E9EE1CB7;
 Sat, 18 Feb 2017 21:59:21 +0000 (UTC) (envelope-from mm@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1ILxKT5030091;
 Sat, 18 Feb 2017 21:59:20 GMT (envelope-from mm@FreeBSD.org)
Received: (from mm@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1ILxJls030080;
 Sat, 18 Feb 2017 21:59:19 GMT (envelope-from mm@FreeBSD.org)
Message-Id: <201702182159.v1ILxJls030080@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org
 using -f
From: Martin Matuska <mm@FreeBSD.org>
Date: Sat, 18 Feb 2017 21:59:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313927 - in stable/10/contrib/libarchive/libarchive: .
 test
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 21:59:22 -0000

Author: mm
Date: Sat Feb 18 21:59:19 2017
New Revision: 313927
URL: https://svnweb.freebsd.org/changeset/base/313927

Log:
  MFC r313572,313782
  Sync libarchive with vendor.
  
  MFC r313572:
    Vendor bugfixes:
      cpio reader sanity fix (OSS-Fuzz 504)
      WARC reader sanity fixes (OSS-Fuzz 511, 526, 532, 552)
      mtree reader time parsing fix (OSS-Fuzz 538)
      XAR reader memleak fix (OSS-Fuzz 551)
  
  MFC r313782:
    Vendor changes:
      Make SCHILY.acl.ace header more compact (NFSv4 ACLs)
  
    Vendor bugfixes:
      zip reader integer parsing fix (OSS-Fuzz 556)
      spelling fixes (issue #863)

Modified:
  stable/10/contrib/libarchive/libarchive/archive_acl.c
  stable/10/contrib/libarchive/libarchive/archive_entry.h
  stable/10/contrib/libarchive/libarchive/archive_entry_acl.3
  stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
  stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c
  stable/10/contrib/libarchive/libarchive/archive_write_disk_acl.c
  stable/10/contrib/libarchive/libarchive/archive_write_set_format_pax.c
  stable/10/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
  stable/10/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c
  stable/10/contrib/libarchive/libarchive/test/test_acl_text.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/libarchive/libarchive/archive_acl.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_acl.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_acl.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -83,6 +83,50 @@ static void	append_entry(char **p, const
 		    int tag, int flags, const char *name, int perm, int id);
 static void	append_id(char **p, int id);
 
+static const struct {
+	const int perm;
+	const char c;
+	const wchar_t wc;
+} nfsv4_acl_perm_map[] = {
+	{ ARCHIVE_ENTRY_ACL_READ_DATA | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, 'r',
+	    L'r' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_DATA | ARCHIVE_ENTRY_ACL_ADD_FILE, 'w',
+	    L'w' },
+	{ ARCHIVE_ENTRY_ACL_EXECUTE, 'x', L'x' },
+	{ ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY,
+	    'p', L'p' },
+	{ ARCHIVE_ENTRY_ACL_DELETE, 'd', L'd' },
+	{ ARCHIVE_ENTRY_ACL_DELETE_CHILD, 'D', L'D' },
+	{ ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, 'a', L'a' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, 'A', L'A' },
+	{ ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, 'R', L'R' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, 'W', L'W' },
+	{ ARCHIVE_ENTRY_ACL_READ_ACL, 'c', L'c' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_ACL, 'C', L'C' },
+	{ ARCHIVE_ENTRY_ACL_WRITE_OWNER, 'o', L'o' },
+	{ ARCHIVE_ENTRY_ACL_SYNCHRONIZE, 's', L's' }
+};
+
+static const int nfsv4_acl_perm_map_size = (int)(sizeof(nfsv4_acl_perm_map) /
+    sizeof(nfsv4_acl_perm_map[0]));
+
+static const struct {
+	const int perm;
+	const char c;
+	const wchar_t wc;
+} nfsv4_acl_flag_map[] = {
+	{ ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, 'f', L'f' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, 'd', L'd' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, 'i', L'i' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, 'n', L'n' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, 'S', L'S' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, 'F', L'F' },
+	{ ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, 'I', L'I' }
+};
+
+static const int nfsv4_acl_flag_map_size = (int)(sizeof(nfsv4_acl_flag_map) /
+    sizeof(nfsv4_acl_flag_map[0]));
+
 void
 archive_acl_clear(struct archive_acl *acl)
 {
@@ -741,6 +785,8 @@ static void
 append_entry_w(wchar_t **wp, const wchar_t *prefix, int type,
     int tag, int flags, const wchar_t *wname, int perm, int id)
 {
+	int i;
+
 	if (prefix != NULL) {
 		wcscpy(*wp, prefix);
 		*wp += wcslen(*wp);
@@ -810,46 +856,20 @@ append_entry_w(wchar_t **wp, const wchar
 		*(*wp)++ = (perm & 0222) ? L'w' : L'-';
 		*(*wp)++ = (perm & 0111) ? L'x' : L'-';
 	} else {
-		/* NFS4 ACL perms */
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_READ_DATA |
-		    ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? L'r' : L'-';
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_FILE)) ? L'w' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? L'x' : L'-';
-		*(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? L'p' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? L'd' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? L'D' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? L'a' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? L'A' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? L'R' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? L'W' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? L'c' : L'-';
-		*(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? L'C' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? L'o' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? L's' : L'-';
+		/* NFSv4 ACL perms */
+		for (i = 0; i < nfsv4_acl_perm_map_size; i++) {
+			if (perm & nfsv4_acl_perm_map[i].perm)
+				*(*wp)++ = nfsv4_acl_perm_map[i].wc;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*wp)++ = L'-';
+		}
 		*(*wp)++ = L':';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? L'f' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? L'd' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? L'i' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? L'n' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? L'S' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? L'F' : L'-';
-		*(*wp)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? L'I' : L'-';
+		for (i = 0; i < nfsv4_acl_flag_map_size; i++) {
+			if (perm & nfsv4_acl_flag_map[i].perm)
+				*(*wp)++ = nfsv4_acl_flag_map[i].wc;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*wp)++ = L'-';
+		}
 		*(*wp)++ = L':';
 		switch (type) {
 		case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
@@ -998,6 +1018,8 @@ static void
 append_entry(char **p, const char *prefix, int type,
     int tag, int flags, const char *name, int perm, int id)
 {
+	int i;
+
 	if (prefix != NULL) {
 		strcpy(*p, prefix);
 		*p += strlen(*p);
@@ -1067,47 +1089,20 @@ append_entry(char **p, const char *prefi
 		*(*p)++ = (perm & 0222) ? 'w' : '-';
 		*(*p)++ = (perm & 0111) ? 'x' : '-';
 	} else {
-		/* NFS4 ACL perms */
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_READ_DATA |
-		    ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? 'r' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_FILE)) ? 'w' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_EXECUTE)) ? 'x' : '-';
-		*(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA |
-		    ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? 'p' : '-';
-		*(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? 'd' : '-';
-		*(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? 'D' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? 'a' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? 'A' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? 'R' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? 'W' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_READ_ACL) ? 'c' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_ACL) ? 'C' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? 'o' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? 's' : '-';
+		/* NFSv4 ACL perms */
+		for (i = 0; i < nfsv4_acl_perm_map_size; i++) {
+			if (perm & nfsv4_acl_perm_map[i].perm)
+				*(*p)++ = nfsv4_acl_perm_map[i].c;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*p)++ = '-';
+		}
 		*(*p)++ = ':';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? 'f' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? 'd' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? 'i' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? 'n' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? 'S' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? 'F' : '-';
-		*(*p)++ = (perm &
-		    ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? 'I' : '-';
+		for (i = 0; i < nfsv4_acl_flag_map_size; i++) {
+			if (perm & nfsv4_acl_flag_map[i].perm)
+				*(*p)++ = nfsv4_acl_flag_map[i].c;
+			else if ((flags & ARCHIVE_ENTRY_ACL_STYLE_COMPACT) == 0)
+				*(*p)++ = '-';
+		}
 		*(*p)++ = ':';
 		switch (type) {
 		case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
@@ -1467,11 +1462,8 @@ ismode_w(const wchar_t *start, const wch
 static int
 is_nfs4_perms_w(const wchar_t *start, const wchar_t *end, int *permset)
 {
-	const wchar_t *p;
+	const wchar_t *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch (*p++) {
 		case L'r':
@@ -1533,11 +1525,8 @@ is_nfs4_perms_w(const wchar_t *start, co
 static int
 is_nfs4_flags_w(const wchar_t *start, const wchar_t *end, int *permset)
 {
-	const wchar_t *p;
+	const wchar_t *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch(*p++) {
 		case L'f':
@@ -1945,11 +1934,8 @@ ismode(const char *start, const char *en
 static int
 is_nfs4_perms(const char *start, const char *end, int *permset)
 {
-	const char *p;
+	const char *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch (*p++) {
 		case 'r':
@@ -2011,11 +1997,8 @@ is_nfs4_perms(const char *start, const c
 static int
 is_nfs4_flags(const char *start, const char *end, int *permset)
 {
-	const char *p;
+	const char *p = start;
 
-	if (start >= end)
-		return (0);
-	p = start;
 	while (p < end) {
 		switch(*p++) {
 		case 'f':

Modified: stable/10/contrib/libarchive/libarchive/archive_entry.h
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_entry.h	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_entry.h	Sat Feb 18 21:59:19 2017	(r313927)
@@ -509,6 +509,10 @@ __LA_DECL int	 archive_entry_acl_next_w(
  * ARCHIVE_ENTRY_ACL_STYLE_SOLARIS - Output only one colon after "other" and
  *    "mask" entries.
  *
+ * Flags only for archive entries with NFSv4 ACL:
+ * ARCHIVE_ENTRY_ACL_STYLE_COMPACT - Do not output the minus character for
+ *    unset permissions and flags in NFSv4 ACL permission and flag fields
+ *
  * Flags for for archive entries with POSIX.1e ACL or NFSv4 ACL:
  * ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID - Include extra numeric ID field in
  *    each ACL entry.
@@ -519,6 +523,7 @@ __LA_DECL int	 archive_entry_acl_next_w(
 #define	ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT	0x00000002
 #define	ARCHIVE_ENTRY_ACL_STYLE_SOLARIS		0x00000004
 #define	ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA	0x00000008
+#define	ARCHIVE_ENTRY_ACL_STYLE_COMPACT		0x00000010
 
 __LA_DECL wchar_t *archive_entry_acl_to_text_w(struct archive_entry *,
 	    ssize_t * /* len */, int /* flags */);

Modified: stable/10/contrib/libarchive/libarchive/archive_entry_acl.3
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_entry_acl.3	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_entry_acl.3	Sat Feb 18 21:59:19 2017	(r313927)
@@ -23,7 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd December 27, 2016
+.Dd February 15, 2017
 .Dt ARCHIVE_ENTRY_ACL 3
 .Os
 .Sh NAME
@@ -390,6 +390,13 @@ Prefix each default ACL entry with the w
 The mask and other ACLs don not contain a double colon.
 .El
 .Pp
+The following flags are effecive only on NFSv4 ACL:
+.Bl -tag -offset indent -compact -width ARCHIV
+.It Dv ARCHIVE_ENTRY_ACL_STYLE_COMPACT
+Do not output minus characters for unset permissions and flags in NFSv4 ACL
+permission and flag fields.
+.El
+.Pp
 The following flags are effective on both POSIX.1e and NFSv4 ACL:
 .Bl -tag -offset indent -compact -width ARCHIV
 .It Dv ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID

Modified: stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -618,9 +618,9 @@ setup_acls(struct archive_read_disk *a,
 /*
  * Translate system ACL permissions into libarchive internal structure
  */
-static struct {
-	int archive_perm;
-	int platform_perm;
+static const struct {
+	const int archive_perm;
+	const int platform_perm;
 } acl_perm_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 ACL permissions */
 	{ARCHIVE_ENTRY_ACL_EXECUTE, ACE_EXECUTE},
@@ -687,9 +687,9 @@ static struct {
 /*
  * Translate system NFSv4 inheritance flags into libarchive internal structure
  */
-static struct {
-	int archive_inherit;
-	int platform_inherit;
+static const struct {
+	const int archive_inherit;
+	const int platform_inherit;
 } acl_inherit_map[] = {
 #if HAVE_SUN_ACL	/* Solaris ACL inheritance flags */
 	{ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACE_FILE_INHERIT_ACE},
@@ -882,7 +882,7 @@ sun_acl_is_trivial(acl_t *acl, mode_t mo
 	/*
 	 * POSIX.1e ACLs marked with ACL_IS_TRIVIAL are compatible with
 	 * FreeBSD acl_is_trivial_np(). On Solaris they have 4 entries,
-	 * incuding mask.
+	 * including mask.
 	 */
 	if (acl->acl_type == ACLENT_T) {
 		if (acl->acl_cnt == 4)

Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_zip.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -452,26 +452,38 @@ process_extra(struct archive_read *a, co
 			/* Zip64 extended information extra field. */
 			zip_entry->flags |= LA_USED_ZIP64;
 			if (zip_entry->uncompressed_size == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->uncompressed_size =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit uncompressed size");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->uncompressed_size = t;
 				offset += 8;
 				datasize -= 8;
 			}
 			if (zip_entry->compressed_size == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->compressed_size =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit compressed size");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->compressed_size = t;
 				offset += 8;
 				datasize -= 8;
 			}
 			if (zip_entry->local_header_offset == 0xffffffff) {
-				if (datasize < 8)
-					break;
-				zip_entry->local_header_offset =
-				    archive_le64dec(p + offset);
+				uint64_t t = 0;
+				if (datasize < 8
+				    || (t = archive_le64dec(p + offset)) > INT64_MAX) {
+					archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Malformed 64-bit local header offset");
+					return ARCHIVE_FAILED;
+				}
+				zip_entry->local_header_offset = t;
 				offset += 8;
 				datasize -= 8;
 			}
@@ -1156,11 +1168,18 @@ zip_read_data_none(struct archive_read *
 			|| (zip->hctx_valid
 			 && zip->entry->aes_extra.vendor == AES_VENDOR_AE_2))) {
 			if (zip->entry->flags & LA_USED_ZIP64) {
+				uint64_t compressed, uncompressed;
 				zip->entry->crc32 = archive_le32dec(p + 4);
-				zip->entry->compressed_size =
-					archive_le64dec(p + 8);
-				zip->entry->uncompressed_size =
-					archive_le64dec(p + 16);
+				compressed = archive_le64dec(p + 8);
+				uncompressed = archive_le64dec(p + 16);
+				if (compressed > INT64_MAX || uncompressed > INT64_MAX) {
+					archive_set_error(&a->archive,
+					    ARCHIVE_ERRNO_FILE_FORMAT,
+					    "Overflow of 64-bit file sizes");
+					return ARCHIVE_FAILED;
+				}
+				zip->entry->compressed_size = compressed;
+				zip->entry->uncompressed_size = uncompressed;
 				zip->unconsumed = 24;
 			} else {
 				zip->entry->crc32 = archive_le32dec(p + 4);
@@ -1437,9 +1456,18 @@ zip_read_data_deflate(struct archive_rea
 			zip->unconsumed = 4;
 		}
 		if (zip->entry->flags & LA_USED_ZIP64) {
+			uint64_t compressed, uncompressed;
 			zip->entry->crc32 = archive_le32dec(p);
-			zip->entry->compressed_size = archive_le64dec(p + 4);
-			zip->entry->uncompressed_size = archive_le64dec(p + 12);
+			compressed = archive_le64dec(p + 4);
+			uncompressed = archive_le64dec(p + 12);
+			if (compressed > INT64_MAX || uncompressed > INT64_MAX) {
+				archive_set_error(&a->archive,
+				    ARCHIVE_ERRNO_FILE_FORMAT,
+				    "Overflow of 64-bit file sizes");
+				return ARCHIVE_FAILED;
+			}
+			zip->entry->compressed_size = compressed;
+			zip->entry->uncompressed_size = uncompressed;
 			zip->unconsumed += 20;
 		} else {
 			zip->entry->crc32 = archive_le32dec(p);

Modified: stable/10/contrib/libarchive/libarchive/archive_write_disk_acl.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_write_disk_acl.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_write_disk_acl.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -101,7 +101,7 @@ archive_write_disk_set_acls(struct archi
 			    ACL_TYPE_DEFAULT, ARCHIVE_ENTRY_ACL_TYPE_DEFAULT,
 			    "default");
 #endif	/* !HAVE_SUN_ACL */
-		/* Simultaeous POSIX.1e and NFSv4 is not supported */
+		/* Simultaneous POSIX.1e and NFSv4 is not supported */
 		return (ret);
 	}
 #endif	/* !HAVE_DARWIN_ACL */
@@ -119,9 +119,9 @@ archive_write_disk_set_acls(struct archi
 /*
  * Translate system ACL permissions into libarchive internal structure
  */
-static struct {
-	int archive_perm;
-	int platform_perm;
+static const struct {
+	const int archive_perm;
+	const int platform_perm;
 } acl_perm_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 ACL permissions */
 	{ARCHIVE_ENTRY_ACL_EXECUTE, ACE_EXECUTE},
@@ -188,9 +188,9 @@ static struct {
 /*
  * Translate system NFSv4 inheritance flags into libarchive internal structure
  */
-static struct {
-	int archive_inherit;
-	int platform_inherit;
+static const struct {
+	const int archive_inherit;
+	const int platform_inherit;
 } acl_inherit_map[] = {
 #if HAVE_SUN_ACL	/* Solaris NFSv4 inheritance flags */
 	{ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACE_FILE_INHERIT_ACE},

Modified: stable/10/contrib/libarchive/libarchive/archive_write_set_format_pax.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_write_set_format_pax.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/archive_write_set_format_pax.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -1166,7 +1166,8 @@ archive_write_pax_header(struct archive_
 		if ((acl_types & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
 			ret = add_pax_acl(a, entry_original, pax,
 			    ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
-			    ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA);
+			    ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA |
+			    ARCHIVE_ENTRY_ACL_STYLE_COMPACT);
 			if (ret == ARCHIVE_FATAL)
 				return (ARCHIVE_FATAL);
 		}

Modified: stable/10/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu
==============================================================================
--- stable/10/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/test/test_acl_pax_nfs4.tar.uu	Sat Feb 18 21:59:19 2017	(r313927)
@@ -1,8 +1,8 @@
 begin 644 test_acl_pax_nfs4.tar
 M4&%X2&5A9&5R+V9I;&4`````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M`````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,C`R
-M(#`P,#`P,#`P,#`P(#`Q,C`P,0`@>```````````````````````````````
+M`````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P,#`P,3,R
+M(#`P,#`P,#`P,#`P(#`Q,C`P,P`@>```````````````````````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````!U<W1A<@`P,```````
 M````````````````````````````````````````````````````````````
@@ -10,10 +10,10 @@ M```````````````````P,#`P,#`@`#`P,#`P,"`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M```````````````````````Q,S`@4T-(24Q9+F%C;"YA8V4];W=N97)`.G)W
-M>'`M+6%!4E=C0V]S.BTM+2TM+2TZ86QL;W<L9W)O=7!`.G)W+7`M+6$M4BUC
-M+2US.BTM+2TM+2TZ86QL;W<L979E<GEO;F5`.G(M+2TM+6$M4BUC+2US.BTM
-M+2TM+2TZ86QL;W<*````````````````````````````````````````````
+M```````````````````````Y,"!30TA)3%DN86-L+F%C93UO=VYE<D`Z<G=X
+M<&%!4E=C0V]S.CIA;&QO=RQG<F]U<$`Z<G=P85)C<SHZ86QL;W<L979E<GEO
+M;F5`.G)A4F-S.CIA;&QO=PH`````````````````````````````````````
+M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
@@ -36,7 +36,7 @@ M```````````````````````````````````````
 M````````4&%X2&5A9&5R+V9I;&4`````````````````````````````````
 M````````````````````````````````````````````````````````````
 M`````````````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@`#`P,#`P
-M,#`P-#`V(#`P,#`P,#`P,#`P(#`Q,C`P-P`@>```````````````````````
+M,#`P,C4V(#`P,#`P,#`P,#`P(#`Q,C`Q,@`@>```````````````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````````````!U<W1A<@`P
 M,```````````````````````````````````````````````````````````
@@ -44,13 +44,13 @@ M```````````````````````````P,#`P,#`@`#`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M```````````````````````````````R-C(@4T-(24Q9+F%C;"YA8V4];W=N
-M97)`.G)W+7`M+6%!4E=C0V]S.BTM+2TM+2TZ86QL;W<L=7-E<CIU<V5R-S<Z
-M<BTM+2TM82U2+6,M+7,Z+2TM+2TM23IA;&QO=SHW-RQU<V5R.G5S97(W.#IR
-M=W@M+2TM+2TM+2TM+3HM+2TM+2TM.F1E;GDZ-S@L9W)O=7!`.G)W+7`M+6$M
-M4BUC+2US.BTM+2TM+2TZ86QL;W<L9W)O=7`Z9W)O=7`W.#HM=RUP+2TM02U7
-M+4-O+3HM+2TM+2TM.F1E;GDZ-S@L979E<GEO;F5`.G(M+2TM+6$M4BUC+2US
-M.BTM+2TM+2TZ86QL;W<*````````````````````````````````````````
+M```````````````````````````````Q-S0@4T-(24Q9+F%C;"YA8V4];W=N
+M97)`.G)W<&%!4E=C0V]S.CIA;&QO=RQU<V5R.G5S97(W-SIR85)C<SI).F%L
+M;&]W.C<W+'5S97(Z=7-E<C<X.G)W>#HZ9&5N>3HW."QG<F]U<$`Z<G=P85)C
+M<SHZ86QL;W<L9W)O=7`Z9W)O=7`W.#IW<$%70V\Z.F1E;GDZ-S@L979E<GEO
+M;F5`.G)A4F-S.CIA;&QO=PH`````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
@@ -70,7 +70,7 @@ M```````````````````````````````````````
 M````````````````4&%X2&5A9&5R+V9I;&4`````````````````````````
 M````````````````````````````````````````````````````````````
 M`````````````````````````````#`P,#<W-R``,#`P,#`P(``P,#`P,#`@
-M`#`P,#`P,#`P-#$P(#`P,#`P,#`P,#`P(#`Q,C`P,@`@>```````````````
+M`#`P,#`P,#`P,C8R(#`P,#`P,#`P,#`P(#`Q,C`P-P`@>```````````````
 M````````````````````````````````````````````````````````````
 M``````````````````````````````````````````````````````````!U
 M<W1A<@`P,```````````````````````````````````````````````````
@@ -78,13 +78,13 @@ M```````````````````````````````````P,#`
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
-M```````````````````````````````````````R-C0@4T-(24Q9+F%C;"YA
-M8V4];W=N97)`.G)W>'`M+6%!4E=C0V]S.BTM+2TM+2TZ86QL;W<L=7-E<CIU
-M<V5R-S<Z<G<M<"TM82U2+6,M;W,Z+2TM+2TM+3IA;&QO=SHW-RQU<V5R.G5S
-M97(W-SHM=RUP+2TM+2TM+2TM+3HM+2TM4RTM.F%U9&ET.C<W+&=R;W5P0#IR
-M=RUP+2UA+5(M8RTM<SHM+2TM+2TM.F%L;&]W+&=R;W5P.F=R;W5P-S@Z<BTM
-M+2TM82U2+6,M+2TZ+2TM+2U&+3IA;&%R;3HW."QE=F5R>6]N94`Z<BTM+2TM
-M82U2+6,M+7,Z+2TM+2TM+3IA;&QO=PH`````````````````````````````
+M```````````````````````````````````````Q-S@@4T-(24Q9+F%C;"YA
+M8V4];W=N97)`.G)W>'!A05)78T-O<SHZ86QL;W<L=7-E<CIU<V5R-S<Z<G=P
+M85)C;W,Z.F%L;&]W.C<W+'5S97(Z=7-E<C<W.G=P.E,Z875D:70Z-S<L9W)O
+M=7!`.G)W<&%28W,Z.F%L;&]W+&=R;W5P.F=R;W5P-S@Z<F%28SI&.F%L87)M
+M.C<X+&5V97)Y;VYE0#IR85)C<SHZ86QL;W<*````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````
 M````````````````````````````````````````````````````````````

Modified: stable/10/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/test/test_acl_platform_posix1e.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -472,7 +472,7 @@ DEFINE_TEST(test_acl_platform_posix1e_re
 		return;
 	}
 #if HAVE_SUN_ACL
-	/* Check if Solars filesystem supports POSIX.1e ACLs */
+	/* Check if Solaris filesystem supports POSIX.1e ACLs */
 	n = facl_get(fd, 0, &acl);
 	if (n != 0)
 		close(fd);

Modified: stable/10/contrib/libarchive/libarchive/test/test_acl_text.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/test/test_acl_text.c	Sat Feb 18 21:58:56 2017	(r313926)
+++ stable/10/contrib/libarchive/libarchive/test/test_acl_text.c	Sat Feb 18 21:59:19 2017	(r313927)
@@ -221,7 +221,14 @@ const char* acltext[] = {
 	"group:group78:r-----a-R-c---:------I:allow:78\n"
 	"owner@:rwxp--aARWcCo-:-------:allow\n"
 	"group@:rw-p--a-R-c---:-------:allow\n"
-	"everyone@:r-----a-R-c--s:-------:allow"
+	"everyone@:r-----a-R-c--s:-------:allow",
+
+	"user:user77:rwpaRco::allow:77\n"
+	"user:user101:wpdD:fdin:deny:101\n"
+	"group:group78:raRc:I:allow:78\n"
+	"owner@:rwxpaARWcCo::allow\n"
+	"group@:rwpaRc::allow\n"
+	"everyone@:raRcs::allow"
 };
 
 static wchar_t *
@@ -458,5 +465,9 @@ DEFINE_TEST(test_acl_to_text)
 	/* NFSv4 ACLs like "getfacl -i" on FreeBSD */
 	compare_acl_text(ae, ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID, acltext[10]);
 
+	/* NFSv4 ACLs like "getfacl -i" on FreeBSD with stripped minus chars */
+	compare_acl_text(ae, ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
+	    ARCHIVE_ENTRY_ACL_STYLE_COMPACT, acltext[11]);
+
 	archive_entry_free(ae);
 }

From owner-svn-src-stable@freebsd.org  Sat Feb 18 22:13:30 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30C0DCE5167;
 Sat, 18 Feb 2017 22:13:30 +0000 (UTC) (envelope-from mm@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 mx1.freebsd.org (Postfix) with ESMTPS id E6293CFC;
 Sat, 18 Feb 2017 22:13:29 +0000 (UTC) (envelope-from mm@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v1IMDS7A038416;
 Sat, 18 Feb 2017 22:13:28 GMT (envelope-from mm@FreeBSD.org)
Received: (from mm@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v1IMDSh2038412;
 Sat, 18 Feb 2017 22:13:28 GMT (envelope-from mm@FreeBSD.org)
Message-Id: <201702182213.v1IMDSh2038412@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org
 using -f
From: Martin Matuska <mm@FreeBSD.org>
Date: Sat, 18 Feb 2017 22:13:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r313929 - stable/10/contrib/libarchive/libarchive
X-SVN-Group: stable-10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Feb 2017 22:13:30 -0000

Author: mm
Date: Sat Feb 18 22:13:28 2017
New Revision: 313929
URL: https://svnweb.freebsd.org/changeset/base/313929

Log:
  Fix incomplete merge in r313927:
  
  MFC r313572:
    Vendor bugfixes:
      cpio reader sanity fix (OSS-Fuzz 504)
      WARC reader sanity fixes (OSS-Fuzz 511, 526, 532, 552)
      mtree reader time parsing fix (OSS-Fuzz 538)
      XAR reader memleak fix (OSS-Fuzz 551)

Modified:
  stable/10/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
  stable/10/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
  stable/10/contrib/libarchive/libarchive/archive_read_support_format_warc.c
  stable/10/contrib/libarchive/libarchive/archive_read_support_format_xar.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_cpio.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 18 22:06:03 2017	(r313928)
+++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_cpio.c	Sat Feb 18 22:13:28 2017	(r313929)
@@ -356,7 +356,7 @@ archive_read_format_cpio_read_header(str
     struct archive_entry *entry)
 {
 	struct cpio *cpio;
-	const void *h;
+	const void *h, *hl;
 	struct archive_string_conv *sconv;
 	size_t namelength;
 	size_t name_pad;
@@ -406,11 +406,11 @@ archive_read_format_cpio_read_header(str
 			    "Rejecting malformed cpio archive: symlink contents exceed 1 megabyte");
 			return (ARCHIVE_FATAL);
 		}
-		h = __archive_read_ahead(a,
+		hl = __archive_read_ahead(a,
 			(size_t)cpio->entry_bytes_remaining, NULL);
-		if (h == NULL)
+		if (hl == NULL)
 			return (ARCHIVE_FATAL);
-		if (archive_entry_copy_symlink_l(entry, (const char *)h,
+		if (archive_entry_copy_symlink_l(entry, (const char *)hl,
 		    (size_t)cpio->entry_bytes_remaining, sconv) != 0) {
 			if (errno == ENOMEM) {
 				archive_set_error(&a->archive, ENOMEM,
@@ -434,7 +434,7 @@ archive_read_format_cpio_read_header(str
 	 * header.  XXX */
 
 	/* Compare name to "TRAILER!!!" to test for end-of-archive. */
-	if (namelength == 11 && memcmp((const char *)h, "TRAILER!!!",
+	if (namelength == 11 && strncmp((const char *)h, "TRAILER!!!",
 	    11) == 0) {
 		/* TODO: Store file location of start of block. */
 		archive_clear_error(&a->archive);

Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_mtree.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 18 22:06:03 2017	(r313928)
+++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_mtree.c	Sat Feb 18 22:13:28 2017	(r313929)
@@ -1608,8 +1608,11 @@ parse_keyword(struct archive_read *a, st
 			if (*val == '.') {
 				++val;
 				ns = (long)mtree_atol10(&val);
-			} else
-				ns = 0;
+				if (ns < 0)
+					ns = 0;
+				else if (ns > 999999999)
+					ns = 999999999;
+			}
 			if (m > my_time_t_max)
 				m = my_time_t_max;
 			else if (m < my_time_t_min)

Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_warc.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 18 22:06:03 2017	(r313928)
+++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_warc.c	Sat Feb 18 22:13:28 2017	(r313929)
@@ -134,8 +134,8 @@ static ssize_t _warc_rdlen(const char *b
 static time_t _warc_rdrtm(const char *buf, size_t bsz);
 static time_t _warc_rdmtm(const char *buf, size_t bsz);
 static const char *_warc_find_eoh(const char *buf, size_t bsz);
+static const char *_warc_find_eol(const char *buf, size_t bsz);
 
-
 int
 archive_read_support_format_warc(struct archive *_a)
 {
@@ -198,8 +198,8 @@ _warc_bid(struct archive_read *a, int be
 
 	/* otherwise snarf the record's version number */
 	ver = _warc_rdver(hdr, nrd);
-	if (ver == 0U || ver > 10000U) {
-		/* oh oh oh, best not to wager ... */
+	if (ver < 1200U || ver > 10000U) {
+		/* we only support WARC 0.12 to 1.0 */
 		return -1;
 	}
 
@@ -254,23 +254,32 @@ start_over:
 			&a->archive, ARCHIVE_ERRNO_MISC,
 			"Bad record header");
 		return (ARCHIVE_FATAL);
-	} else if ((ver = _warc_rdver(buf, eoh - buf)) > 10000U) {
-		/* nawww, I wish they promised backward compatibility
-		 * anyhoo, in their infinite wisdom the 28500 guys might
-		 * come up with something we can't possibly handle so
-		 * best end things here */
+	}
+	ver = _warc_rdver(buf, eoh - buf);
+	/* we currently support WARC 0.12 to 1.0 */
+	if (ver == 0U) {
 		archive_set_error(
 			&a->archive, ARCHIVE_ERRNO_MISC,
-			"Unsupported record version");
+			"Invalid record version");
 		return (ARCHIVE_FATAL);
-	} else if ((cntlen = _warc_rdlen(buf, eoh - buf)) < 0) {
+	} else if (ver < 1200U || ver > 10000U) {
+		archive_set_error(
+			&a->archive, ARCHIVE_ERRNO_MISC,
+			"Unsupported record version: %u.%u",
+			ver / 10000, (ver % 10000) / 100);
+		return (ARCHIVE_FATAL);
+	}
+	cntlen = _warc_rdlen(buf, eoh - buf);
+	if (cntlen < 0) {
 		/* nightmare!  the specs say content-length is mandatory
 		 * so I don't feel overly bad stopping the reader here */
 		archive_set_error(
 			&a->archive, EINVAL,
 			"Bad content length");
 		return (ARCHIVE_FATAL);
-	} else if ((rtime = _warc_rdrtm(buf, eoh - buf)) == (time_t)-1) {
+	}
+	rtime = _warc_rdrtm(buf, eoh - buf);
+	if (rtime == (time_t)-1) {
 		/* record time is mandatory as per WARC/1.0,
 		 * so just barf here, fast and loud */
 		archive_set_error(
@@ -284,7 +293,7 @@ start_over:
 	if (ver != w->pver) {
 		/* stringify this entry's version */
 		archive_string_sprintf(&w->sver,
-			"WARC/%u.%u", ver / 10000, ver % 10000);
+			"WARC/%u.%u", ver / 10000, (ver % 10000) / 100);
 		/* remember the version */
 		w->pver = ver;
 	}
@@ -577,51 +586,41 @@ out:
 }
 
 static unsigned int
-_warc_rdver(const char buf[10], size_t bsz)
+_warc_rdver(const char *buf, size_t bsz)
 {
 	static const char magic[] = "WARC/";
-	unsigned int ver;
-
-	(void)bsz; /* UNUSED */
+	unsigned int ver = 0U;
+	unsigned int end = 0U;
 
-	if (memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
-		/* nope */
-		return 99999U;
+	if (bsz < 12 || memcmp(buf, magic, sizeof(magic) - 1U) != 0) {
+		/* buffer too small or invalid magic */
+		return ver;
 	}
 	/* looks good so far, read the version number for a laugh */
 	buf += sizeof(magic) - 1U;
-	/* most common case gets a quick-check here */
-	if (memcmp(buf, "1.0\r\n", 5U) == 0) {
-		ver = 10000U;
-	} else {
-		switch (*buf) {
-		case '0':
-		case '1':
-		case '2':
-		case '3':
-		case '4':
-		case '5':
-		case '6':
-		case '7':
-		case '8':
-			if (buf[1U] == '.') {
-				char *on;
-
-				/* set up major version */
-				ver = (buf[0U] - '0') * 10000U;
-				/* minor version, anyone? */
-				ver += (strtol(buf + 2U, &on, 10)) * 100U;
-				/* don't parse anything else */
-				if (on > buf + 2U) {
-					break;
-				}
-			}
-			/* FALLTHROUGH */
-		case '9':
-		default:
-			/* just make the version ridiculously high */
-			ver = 999999U;
-			break;
+
+	if (isdigit(buf[0U]) && (buf[1U] == '.') && isdigit(buf[2U])) {
+		/* we support a maximum of 2 digits in the minor version */
+		if (isdigit(buf[3U]))
+			end = 1U;
+		/* set up major version */
+		ver = (buf[0U] - '0') * 10000U;
+		/* set up minor version */
+		if (end == 1U) {
+			ver += (buf[2U] - '0') * 1000U;
+			ver += (buf[3U] - '0') * 100U;
+		} else
+			ver += (buf[2U] - '0') * 100U;
+		/*
+		 * WARC below version 0.12 has a space-separated header
+		 * WARC 0.12 and above terminates the version with a CRLF
+		 */
+		if (ver >= 1200U) {
+			if (memcmp(buf + 3U + end, "\r\n", 2U) != 0)
+				ver = 0U;
+		} else if (ver < 1200U) {
+			if (!isblank(*(buf + 3U + end)))
+				ver = 0U;
 		}
 	}
 	return ver;
@@ -631,34 +630,27 @@ static unsigned int
 _warc_rdtyp(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Type:";
-	const char *const eob = buf + bsz;
-	const char *val;
+	const char *val, *eol;
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
 		/* no bother */
 		return WT_NONE;
 	}
-	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return WT_NONE;
+	}
+
+	/* overread whitespace */
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
-	if (val + 8U > eob) {
-		;
-	} else if (memcmp(val, "resource", 8U) == 0) {
-		return WT_RSRC;
-	} else if (memcmp(val, "warcinfo", 8U) == 0) {
-		return WT_INFO;
-	} else if (memcmp(val, "metadata", 8U) == 0) {
-		return WT_META;
-	} else if (memcmp(val, "request", 7U) == 0) {
-		return WT_REQ;
-	} else if (memcmp(val, "response", 8U) == 0) {
-		return WT_RSP;
-	} else if (memcmp(val, "conversi", 8U) == 0) {
-		return WT_CONV;
-	} else if (memcmp(val, "continua", 8U) == 0) {
-		return WT_CONT;
+	if (val + 8U == eol) {
+		if (memcmp(val, "resource", 8U) == 0)
+			return WT_RSRC;
+		else if (memcmp(val, "response", 8U) == 0)
+			return WT_RSP;
 	}
 	return WT_NONE;
 }
@@ -667,10 +659,7 @@ static warc_string_t
 _warc_rduri(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Target-URI:";
-	const char *const eob = buf + bsz;
-	const char *val;
-	const char *uri;
-	const char *eol;
+	const char *val, *uri, *eol, *p;
 	warc_string_t res = {0U, NULL};
 
 	if ((val = xmemmem(buf, bsz, _key, sizeof(_key) - 1U)) == NULL) {
@@ -679,25 +668,32 @@ _warc_rduri(const char *buf, size_t bsz)
 	}
 	/* overread whitespace */
 	val += sizeof(_key) - 1U;
-	while (val < eob && isspace((unsigned char)*val))
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return res;
+	}
+
+	while (val < eol && isblank((unsigned char)*val))
 		++val;
 
 	/* overread URL designators */
-	if ((uri = xmemmem(val, eob - val, "://", 3U)) == NULL) {
+	if ((uri = xmemmem(val, eol - val, "://", 3U)) == NULL) {
 		/* not touching that! */
 		return res;
-	} else if ((eol = memchr(uri, '\n', eob - uri)) == NULL) {
-		/* no end of line? :O */
-		return res;
 	}
 
-	/* massage uri to point to after :// */
+	/* spaces inside uri are not allowed, CRLF should follow */
+	for (p = val; p < eol; p++) {
+		if (isspace(*p))
+			return res;
+	}
+
+	/* there must be at least space for ftp */
+	if (uri < (val + 3U))
+		return res;
+
+	/* move uri to point to after :// */
 	uri += 3U;
-	/* also massage eol to point to the first whitespace
-	 * after the last non-whitespace character before
-	 * the end of the line */
-	while (eol > uri && isspace((unsigned char)eol[-1]))
-		--eol;
 
 	/* now then, inspect the URI */
 	if (memcmp(val, "file", 4U) == 0) {
@@ -720,7 +716,7 @@ static ssize_t
 _warc_rdlen(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nContent-Length:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	long int len;
 
@@ -728,14 +724,24 @@ _warc_rdlen(const char *buf, size_t bsz)
 		/* no bother */
 		return -1;
 	}
-
-	/* strtol kindly overreads whitespace for us, so use that */
 	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL) {
+		/* no end of line */
+		return -1;
+	}
+
+	/* skip leading whitespace */
+	while (val < eol && isblank(*val))
+		val++;
+	/* there must be at least one digit */
+	if (!isdigit(*val))
+		return -1;
 	len = strtol(val, &on, 10);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
+	if (on != eol) {
+		/* line must end here */
 		return -1;
 	}
+
 	return (size_t)len;
 }
 
@@ -743,7 +749,7 @@ static time_t
 _warc_rdrtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nWARC-Date:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -751,13 +757,17 @@ _warc_rdrtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -766,7 +776,7 @@ static time_t
 _warc_rdmtm(const char *buf, size_t bsz)
 {
 	static const char _key[] = "\r\nLast-Modified:";
-	const char *val;
+	const char *val, *eol;
 	char *on = NULL;
 	time_t res;
 
@@ -774,13 +784,17 @@ _warc_rdmtm(const char *buf, size_t bsz)
 		/* no bother */
 		return (time_t)-1;
 	}
+	val += sizeof(_key) - 1U;
+	if ((eol = _warc_find_eol(val, buf + bsz - val)) == NULL ) {
+		/* no end of line */
+		return -1;
+	}
 
 	/* xstrpisotime() kindly overreads whitespace for us, so use that */
-	val += sizeof(_key) - 1U;
 	res = xstrpisotime(val, &on);
-	if (on == NULL || !isspace((unsigned char)*on)) {
-		/* hm, can we trust that number?  Best not. */
-		return (time_t)-1;
+	if (on != eol) {
+		/* line must end here */
+		return -1;
 	}
 	return res;
 }
@@ -797,4 +811,12 @@ _warc_find_eoh(const char *buf, size_t b
 	return hit;
 }
 
+static const char*
+_warc_find_eol(const char *buf, size_t bsz)
+{
+	static const char _marker[] = "\r\n";
+	const char *hit = xmemmem(buf, bsz, _marker, sizeof(_marker) - 1U);
+
+	return hit;
+}
 /* archive_read_support_format_warc.c ends here */

Modified: stable/10/contrib/libarchive/libarchive/archive_read_support_format_xar.c
==============================================================================
--- stable/10/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 18 22:06:03 2017	(r313928)
+++ stable/10/contrib/libarchive/libarchive/archive_read_support_format_xar.c	Sat Feb 18 22:13:28 2017	(r313929)
@@ -394,6 +394,7 @@ static void	checksum_update(struct archi
 		    size_t, const void *, size_t);
 static int	checksum_final(struct archive_read *, const void *,
 		    size_t, const void *, size_t);
+static void	checksum_cleanup(struct archive_read *);
 static int	decompression_init(struct archive_read *, enum enctype);
 static int	decompress(struct archive_read *, const void **,
 		    size_t *, const void *, size_t *);
@@ -923,6 +924,7 @@ xar_cleanup(struct archive_read *a)
 	int r;
 
 	xar = (struct xar *)(a->format->data);
+	checksum_cleanup(a);
 	r = decompression_cleanup(a);
 	hdlink = xar->hdlink_list;
 	while (hdlink != NULL) {
@@ -1720,6 +1722,16 @@ decompression_cleanup(struct archive_rea
 }
 
 static void
+checksum_cleanup(struct archive_read *a) {
+	struct xar *xar;
+
+	xar = (struct xar *)(a->format->data);
+
+	_checksum_final(&(xar->a_sumwrk), NULL, 0);
+	_checksum_final(&(xar->e_sumwrk), NULL, 0);
+}
+
+static void
 xmlattr_cleanup(struct xmlattr_list *list)
 {
 	struct xmlattr *attr, *next;