Module Name:    src
Committed By:   christos
Date:           Fri Sep  8 13:40:25 UTC 2017

Modified Files:
        src/external/bsd/file/dist: ChangeLog Makefile.in config.guess
            config.sub configure configure.ac
        src/external/bsd/file/dist/doc: file.1 libmagic.3 magic.5
        src/external/bsd/file/dist/magic: Makefile.am Makefile.in
        src/external/bsd/file/dist/magic/magdir: archive filesystems
        src/external/bsd/file/dist/src: apprentice.c cdf.c compress.c file.h
            fsmagic.c funcs.c magic.c readelf.c softmagic.c
        src/external/bsd/file/dist/tests: Makefile.in
        src/external/bsd/file/include: config.h

Log Message:
merge file-5.32


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/bsd/file/dist/ChangeLog
cvs rdiff -u -r1.14 -r1.15 src/external/bsd/file/dist/Makefile.in
cvs rdiff -u -r1.9 -r1.10 src/external/bsd/file/dist/config.guess
cvs rdiff -u -r1.8 -r1.9 src/external/bsd/file/dist/config.sub
cvs rdiff -u -r1.17 -r1.18 src/external/bsd/file/dist/configure
cvs rdiff -u -r1.13 -r1.14 src/external/bsd/file/dist/configure.ac
cvs rdiff -u -r1.19 -r1.20 src/external/bsd/file/dist/doc/file.1
cvs rdiff -u -r1.15 -r1.16 src/external/bsd/file/dist/doc/libmagic.3
cvs rdiff -u -r1.16 -r1.17 src/external/bsd/file/dist/doc/magic.5
cvs rdiff -u -r1.13 -r1.14 src/external/bsd/file/dist/magic/Makefile.am
cvs rdiff -u -r1.16 -r1.17 src/external/bsd/file/dist/magic/Makefile.in
cvs rdiff -u -r1.12 -r1.13 src/external/bsd/file/dist/magic/magdir/archive \
    src/external/bsd/file/dist/magic/magdir/filesystems
cvs rdiff -u -r1.18 -r1.19 src/external/bsd/file/dist/src/apprentice.c
cvs rdiff -u -r1.14 -r1.15 src/external/bsd/file/dist/src/cdf.c
cvs rdiff -u -r1.13 -r1.14 src/external/bsd/file/dist/src/compress.c
cvs rdiff -u -r1.16 -r1.17 src/external/bsd/file/dist/src/file.h \
    src/external/bsd/file/dist/src/softmagic.c
cvs rdiff -u -r1.12 -r1.13 src/external/bsd/file/dist/src/fsmagic.c \
    src/external/bsd/file/dist/src/funcs.c
cvs rdiff -u -r1.11 -r1.12 src/external/bsd/file/dist/src/magic.c
cvs rdiff -u -r1.15 -r1.16 src/external/bsd/file/dist/src/readelf.c
cvs rdiff -u -r1.11 -r1.12 src/external/bsd/file/dist/tests/Makefile.in
cvs rdiff -u -r1.10 -r1.11 src/external/bsd/file/include/config.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/file/dist/ChangeLog
diff -u src/external/bsd/file/dist/ChangeLog:1.5 src/external/bsd/file/dist/ChangeLog:1.6
--- src/external/bsd/file/dist/ChangeLog:1.5	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/ChangeLog	Fri Sep  8 09:40:24 2017
@@ -1,3 +1,27 @@
+2017-09-02  11:53  Christos Zoulas <[email protected]>
+
+	* release 5.32
+
+2017-08-28  16:37  Christos Zoulas <[email protected]>
+
+	* Always reset state in {file,buffer}_apprentice (Krzysztof Wilczynski)
+
+2017-08-27  03:55  Christos Zoulas <[email protected]>
+
+	* Fix always true condition (Thomas Jarosch)
+
+2017-05-24  17:30  Christos Zoulas <[email protected]>
+
+	* pickier parsing of numeric values in magic files.
+
+2017-05-23  17:55  Christos Zoulas <[email protected]>
+
+	* PR/615 add magic_getflags()
+
+2017-05-23  13:55  Christos Zoulas <[email protected]>
+
+	* release 5.31
+
 2017-03-17  20:32  Christos Zoulas <[email protected]>
 
 	* remove trailing spaces from magic files
@@ -417,7 +441,7 @@
 		`
 2013-11-06  14:40  Christos Zoulas <[email protected]>
 
-	* fix erroneous non-zero exit code from non-existant file and message
+	* fix erroneous non-zero exit code from non-existent file and message
 
 2013-10-29  14:25  Christos Zoulas <[email protected]>
 

Index: src/external/bsd/file/dist/Makefile.in
diff -u src/external/bsd/file/dist/Makefile.in:1.14 src/external/bsd/file/dist/Makefile.in:1.15
--- src/external/bsd/file/dist/Makefile.in:1.14	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/Makefile.in	Fri Sep  8 09:40:24 2017
@@ -327,8 +327,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = MAINT
-SUBDIRS = src
-#SUBDIRS = src magic tests doc python
+SUBDIRS = src magic tests doc python
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 

Index: src/external/bsd/file/dist/config.guess
diff -u src/external/bsd/file/dist/config.guess:1.9 src/external/bsd/file/dist/config.guess:1.10
--- src/external/bsd/file/dist/config.guess:1.9	Fri Feb 10 12:53:24 2017
+++ src/external/bsd/file/dist/config.guess	Fri Sep  8 09:40:24 2017
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2015-03-04'
+timestamp='2017-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@ timestamp='2015-03-04'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <[email protected]>.
 
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -188,7 +188,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	# The Operating System including object format, if it has switched
 	# to ELF recently (or will in the future) and ABI.
 	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
+	    earm*)
+		os=netbsdelf
+		;;
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 			| grep -q __ELF__
@@ -900,7 +903,7 @@ EOF
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
@@ -923,7 +926,7 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
@@ -969,6 +972,9 @@ EOF
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
+    k1om:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     m32r*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
@@ -994,6 +1000,9 @@ EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
+    mips64el:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     openrisc*:Linux:*:*)
 	echo or1k-unknown-linux-${LIBC}
 	exit ;;
@@ -1026,6 +1035,9 @@ EOF
     ppcle:Linux:*:*)
 	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
+    riscv32:Linux:*:* | riscv64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
@@ -1045,7 +1057,7 @@ EOF
 	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
@@ -1289,9 +1301,9 @@ EOF
 	    UNAME_PROCESSOR=powerpc
 	fi
 	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		    grep IS_64BIT_ARCH >/dev/null
 		then
 		    case $UNAME_PROCESSOR in

Index: src/external/bsd/file/dist/config.sub
diff -u src/external/bsd/file/dist/config.sub:1.8 src/external/bsd/file/dist/config.sub:1.9
--- src/external/bsd/file/dist/config.sub:1.8	Fri Feb 10 12:53:24 2017
+++ src/external/bsd/file/dist/config.sub	Fri Sep  8 09:40:24 2017
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2015-03-08'
+timestamp='2017-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -117,7 +117,7 @@ case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
-  kopensolaris*-gnu* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -254,6 +254,7 @@ case $basic_machine in
 	| arc | arceb \
 	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
 	| avr | avr32 \
+	| ba \
 	| be32 | be64 \
 	| bfin \
 	| c4x | c8051 | clipper \
@@ -521,7 +522,7 @@ case $basic_machine in
 		basic_machine=i386-pc
 		os=-aros
 		;;
-        asmjs)
+	asmjs)
 		basic_machine=asmjs-unknown
 		;;
 	aux)
@@ -1387,18 +1388,18 @@ case $os in
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
 	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* | -cloudabi* \
+	      | -aos* | -aros* | -cloudabi* | -sortix* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
 	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
@@ -1407,7 +1408,8 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)

Index: src/external/bsd/file/dist/configure
diff -u src/external/bsd/file/dist/configure:1.17 src/external/bsd/file/dist/configure:1.18
--- src/external/bsd/file/dist/configure:1.17	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/configure	Fri Sep  8 09:40:24 2017
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for file 5.31.
+# Generated by GNU Autoconf 2.69 for file 5.32.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='file'
 PACKAGE_TARNAME='file'
-PACKAGE_VERSION='5.31'
-PACKAGE_STRING='file 5.31'
+PACKAGE_VERSION='5.32'
+PACKAGE_STRING='file 5.32'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1332,7 +1332,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures file 5.31 to adapt to many kinds of systems.
+\`configure' configures file 5.32 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1402,7 +1402,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of file 5.31:";;
+     short | recursive ) echo "Configuration of file 5.32:";;
    esac
   cat <<\_ACEOF
 
@@ -1516,7 +1516,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-file configure 5.31
+file configure 5.32
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2172,7 +2172,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by file $as_me 5.31, which was
+It was created by file $as_me 5.32, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3060,7 +3060,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='file'
- VERSION='5.31'
+ VERSION='5.32'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15108,7 +15108,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by file $as_me 5.31, which was
+This file was extended by file $as_me 5.32, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15174,7 +15174,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-file config.status 5.31
+file config.status 5.32
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Index: src/external/bsd/file/dist/configure.ac
diff -u src/external/bsd/file/dist/configure.ac:1.13 src/external/bsd/file/dist/configure.ac:1.14
--- src/external/bsd/file/dist/configure.ac:1.13	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/configure.ac	Fri Sep  8 09:40:24 2017
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([file],[5.31],[[email protected]])
+AC_INIT([file],[5.32],[[email protected]])
 AM_INIT_AUTOMAKE([subdir-objects foreign])
 AM_MAINTAINER_MODE(disable)
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

Index: src/external/bsd/file/dist/doc/file.1
diff -u src/external/bsd/file/dist/doc/file.1:1.19 src/external/bsd/file/dist/doc/file.1:1.20
--- src/external/bsd/file/dist/doc/file.1:1.19	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/doc/file.1	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: file.1,v 1.19 2017/05/25 00:11:26 christos Exp $
+.\"	$NetBSD: file.1,v 1.20 2017/09/08 13:40:25 christos Exp $
 .\"
 .\" $File: file.man,v 1.125 2017/01/03 11:24:46 christos Exp $
 .Dd October 19, 2016
@@ -28,7 +28,7 @@
 .Nm
 .Op Fl Fl help
 .Sh DESCRIPTION
-This manual page documents version 5.31 of the
+This manual page documents version 5.32 of the
 .Nm
 command.
 .Pp

Index: src/external/bsd/file/dist/doc/libmagic.3
diff -u src/external/bsd/file/dist/doc/libmagic.3:1.15 src/external/bsd/file/dist/doc/libmagic.3:1.16
--- src/external/bsd/file/dist/doc/libmagic.3:1.15	Fri Feb 10 12:53:24 2017
+++ src/external/bsd/file/dist/doc/libmagic.3	Fri Sep  8 09:40:25 2017
@@ -1,6 +1,6 @@
-.\"	$NetBSD: libmagic.3,v 1.15 2017/02/10 17:53:24 christos Exp $
+.\"	$NetBSD: libmagic.3,v 1.16 2017/09/08 13:40:25 christos Exp $
 .\"
-.\" $File: libmagic.man,v 1.40 2016/03/31 17:51:12 christos Exp $
+.\" $File: libmagic.man,v 1.41 2017/05/23 21:54:07 christos Exp $
 .\"
 .\" Copyright (c) Christos Zoulas 2003.
 .\" All Rights Reserved.
@@ -27,7 +27,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd September 11, 2015
+.Dd May 23, 2017
 .Dt LIBMAGIC 3
 .Os
 .Sh NAME
@@ -37,6 +37,7 @@
 .Nm magic_errno ,
 .Nm magic_descriptor ,
 .Nm magic_buffer ,
+.Nm magic_getflags ,
 .Nm magic_setflags ,
 .Nm magic_check ,
 .Nm magic_compile ,
@@ -66,6 +67,8 @@
 .Ft const char *
 .Fn magic_buffer "magic_t cookie" "const void *buffer" "size_t length"
 .Ft int
+.Fn magic_getflags "magic_t cookie"
+.Ft int
 .Fn magic_setflags "magic_t cookie" "int flags"
 .Ft int
 .Fn magic_check "magic_t cookie" "const char *filename"
@@ -208,6 +211,12 @@ argument with
 bytes size.
 .Pp
 The
+.Fn magic_getflags
+functions returns a value representing current
+.Ar flags
+set.
+.Pp
+The
 .Fn magic_setflags
 function sets the
 .Ar flags

Index: src/external/bsd/file/dist/doc/magic.5
diff -u src/external/bsd/file/dist/doc/magic.5:1.16 src/external/bsd/file/dist/doc/magic.5:1.17
--- src/external/bsd/file/dist/doc/magic.5:1.16	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/doc/magic.5	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: magic.5,v 1.16 2017/05/25 00:11:26 christos Exp $
+.\"	$NetBSD: magic.5,v 1.17 2017/09/08 13:40:25 christos Exp $
 .\"
 .\" $File: magic.man,v 1.91 2017/02/12 15:30:08 christos Exp $
 .Dd February 12, 2017
@@ -12,7 +12,7 @@
 This manual page documents the format of magic files as
 used by the
 .Xr file 1
-command, version 5.31.
+command, version 5.32.
 The
 .Xr file 1
 command identifies the type of a file using,

Index: src/external/bsd/file/dist/magic/Makefile.am
diff -u src/external/bsd/file/dist/magic/Makefile.am:1.13 src/external/bsd/file/dist/magic/Makefile.am:1.14
--- src/external/bsd/file/dist/magic/Makefile.am:1.13	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/magic/Makefile.am	Fri Sep  8 09:40:25 2017
@@ -1,5 +1,5 @@
 #
-# $File: Makefile.am,v 1.124 2017/04/11 14:52:15 christos Exp $
+# $File: Makefile.am,v 1.126 2017/08/10 11:01:38 christos Exp $
 #
 MAGIC_FRAGMENT_BASE = magdir
 MAGIC_DIR = $(top_srcdir)/magic
@@ -35,6 +35,7 @@ $(MAGIC_FRAGMENT_DIR)/audio \
 $(MAGIC_FRAGMENT_DIR)/basis \
 $(MAGIC_FRAGMENT_DIR)/ber \
 $(MAGIC_FRAGMENT_DIR)/bflt \
+$(MAGIC_FRAGMENT_DIR)/bhl \
 $(MAGIC_FRAGMENT_DIR)/bioinformatics \
 $(MAGIC_FRAGMENT_DIR)/blackberry \
 $(MAGIC_FRAGMENT_DIR)/blcr \
@@ -98,6 +99,7 @@ $(MAGIC_FRAGMENT_DIR)/fsav \
 $(MAGIC_FRAGMENT_DIR)/fusecompress \
 $(MAGIC_FRAGMENT_DIR)/games \
 $(MAGIC_FRAGMENT_DIR)/gcc \
+$(MAGIC_FRAGMENT_DIR)/gconv \
 $(MAGIC_FRAGMENT_DIR)/geo \
 $(MAGIC_FRAGMENT_DIR)/geos \
 $(MAGIC_FRAGMENT_DIR)/gimp \

Index: src/external/bsd/file/dist/magic/Makefile.in
diff -u src/external/bsd/file/dist/magic/Makefile.in:1.16 src/external/bsd/file/dist/magic/Makefile.in:1.17
--- src/external/bsd/file/dist/magic/Makefile.in:1.16	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/magic/Makefile.in	Fri Sep  8 09:40:25 2017
@@ -274,7 +274,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
 #
-# $File: Makefile.am,v 1.124 2017/04/11 14:52:15 christos Exp $
+# $File: Makefile.am,v 1.126 2017/08/10 11:01:38 christos Exp $
 #
 MAGIC_FRAGMENT_BASE = magdir
 MAGIC_DIR = $(top_srcdir)/magic
@@ -308,6 +308,7 @@ $(MAGIC_FRAGMENT_DIR)/audio \
 $(MAGIC_FRAGMENT_DIR)/basis \
 $(MAGIC_FRAGMENT_DIR)/ber \
 $(MAGIC_FRAGMENT_DIR)/bflt \
+$(MAGIC_FRAGMENT_DIR)/bhl \
 $(MAGIC_FRAGMENT_DIR)/bioinformatics \
 $(MAGIC_FRAGMENT_DIR)/blackberry \
 $(MAGIC_FRAGMENT_DIR)/blcr \
@@ -371,6 +372,7 @@ $(MAGIC_FRAGMENT_DIR)/fsav \
 $(MAGIC_FRAGMENT_DIR)/fusecompress \
 $(MAGIC_FRAGMENT_DIR)/games \
 $(MAGIC_FRAGMENT_DIR)/gcc \
+$(MAGIC_FRAGMENT_DIR)/gconv \
 $(MAGIC_FRAGMENT_DIR)/geo \
 $(MAGIC_FRAGMENT_DIR)/geos \
 $(MAGIC_FRAGMENT_DIR)/gimp \

Index: src/external/bsd/file/dist/magic/magdir/archive
diff -u src/external/bsd/file/dist/magic/magdir/archive:1.12 src/external/bsd/file/dist/magic/magdir/archive:1.13
--- src/external/bsd/file/dist/magic/magdir/archive:1.12	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/magic/magdir/archive	Fri Sep  8 09:40:25 2017
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: archive,v 1.107 2017/03/20 19:51:15 christos Exp $
+# $File: archive,v 1.108 2017/08/30 13:45:10 christos Exp $
 # archive:  file(1) magic for archive formats (see also "msdos" for self-
 #           extracting compressed archives)
 #
@@ -565,12 +565,12 @@
 # check header level 0 1 2 3
 >>>20	ubyte		<4
 # check 2nd, 3th and 4th character of method id
->>>>3	regex		\^(lh[0-9a-ex]|lz[s2-8]|pm[012]|pc1)		\b\040
+>>>>3	regex		\^(lh[0-9a-ex]|lz[s2-8]|pm[012]|pc1)		\b 
 !:mime	application/x-lzh-compressed
 # creator type "LHA "
 !:apple	????LHA
 # display archive type name like "LHa/LZS archive data" or "LArc archive"
->>>>>2	string		-lz		\b\040
+>>>>>2	string		-lz		\b 
 !:ext	lzs
 # already known  -lzs- -lz4- -lz5- with old names
 >>>>>>2	string	-lzs		LHa/LZS archive data
@@ -584,12 +584,12 @@
 # LHice archiver use ".ICE" as name extension instead usual one ".lzh"
 # FOOBAR archiver use ".foo" as name extension instead usual one
 # "Florain Orjanov's and Olga Bachetska's ARchiver" not found at the moment
->>>>>>>2	string	-lh1		\b\040
+>>>>>>>2	string	-lh1		\b 
 !:ext lha/lzh/ice
 >>>>>>3	regex		\^lh[23d]	LHa 2.x? archive data
 >>>>>>3	regex		\^lh[7]		LHa (2.x)/LHark archive data
 >>>>>>3	regex		\^lh[456]	LHa (2.x) archive data
->>>>>>>2	string	-lh5		\b\040
+>>>>>>>2	string	-lh5		\b 
 # https://en.wikipedia.org/wiki/BIOS
 # Some mainboard BIOS like Award use LHa compression. So archives with unusal extension are found like
 # bios.rom , kd7_v14.bin, 1010.004, ...
@@ -599,7 +599,7 @@
 # UNLHA32 2.67a
 >>>>>>2	string		-lhx		LHa (UNLHA32) archive
 # lha archives with standard file name extensions ".lha" ".lzh"
->>>>>>3	regex		!\^(lh1|lh5)	\b\040
+>>>>>>3	regex		!\^(lh1|lh5)	\b 
 !:ext lha/lzh
 # this should not happen if all -lh variants are described
 >>>>>>2	default		x		LHa (unknown) archive
Index: src/external/bsd/file/dist/magic/magdir/filesystems
diff -u src/external/bsd/file/dist/magic/magdir/filesystems:1.12 src/external/bsd/file/dist/magic/magdir/filesystems:1.13
--- src/external/bsd/file/dist/magic/magdir/filesystems:1.12	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/magic/magdir/filesystems	Fri Sep  8 09:40:25 2017
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: filesystems,v 1.120 2017/03/24 19:29:26 christos Exp $
+# $File: filesystems,v 1.122 2017/07/21 10:34:41 christos Exp $
 # filesystems:  file(1) magic for different filesystems
 #
 0	name	partid
@@ -1959,11 +1959,10 @@
 32769	string    CD001
 # mime line at that position does not work
 # to display CD-ROM (70=81-11) after MBR (113=40+72+1), partition-table (71=50+21) and before Apple Driver Map (51)
-!:strength -11
+#!:strength -11
 # to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51)
-# does not work
-#!:strength +33
->0	use cdrom
+!:strength +34
+>0	use	cdrom
 
 # .cso files
 # Reference: http://pismotec.com/ciso/ciso.h
@@ -2388,3 +2387,13 @@
 >>>>>>>>0x1B	ubyte	0x30		\b, media=1D
 >>>>>>>>0x1B	ubyte	0x40		\b, media=1DD
 >>>>>>>>0x1A	ubyte	0x10		\b, write-protected
+
+# HDD Raw Copy Tool disk image, file extension: .imgc
+# From Benjamin Vanheuverzwijn <[email protected]>
+0	pstring	HDD\ Raw\ Copy\ Tool	%s
+>0x100	pstring	x			%s
+>0x200	pstring	x			- HD model: %s
+#>0x300	pstring	x			unknown %s
+>0x400	pstring	x			serial: %s
+#>0x500	pstring	x			unknown: %s
+!:ext	imgc

Index: src/external/bsd/file/dist/src/apprentice.c
diff -u src/external/bsd/file/dist/src/apprentice.c:1.18 src/external/bsd/file/dist/src/apprentice.c:1.19
--- src/external/bsd/file/dist/src/apprentice.c:1.18	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/apprentice.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: apprentice.c,v 1.18 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: apprentice.c,v 1.19 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Ian F. Darwin 1986-1995.
@@ -35,9 +35,9 @@
 
 #ifndef	lint
 #if 0
-FILE_RCSID("@(#)$File: apprentice.c,v 1.260 2017/04/28 16:27:58 christos Exp $")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.262 2017/08/28 13:39:18 christos Exp $")
 #else
-__RCSID("$NetBSD: apprentice.c,v 1.18 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: apprentice.c,v 1.19 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif	/* lint */
 
@@ -618,8 +618,7 @@ buffer_apprentice(struct magic_set *ms, 
 	if (nbufs == 0)
 		return -1;
 
-	if (ms->mlist[0] != NULL)
-		file_reset(ms);
+	(void)file_reset(ms, 0);
 
 	init_file_tables();
 
@@ -662,8 +661,7 @@ file_apprentice(struct magic_set *ms, co
 	int file_err, errs = -1;
 	size_t i;
 
-	if (ms->mlist[0] != NULL)
-		file_reset(ms);
+	(void)file_reset(ms, 0);
 
 	if ((fn = magic_getpath(fn, action)) == NULL)
 		return -1;
@@ -785,6 +783,59 @@ nonmagic(const char *str)
 	return rv == 0 ? 1 : rv;	/* Return at least 1 */
 }
 
+
+private size_t
+typesize(int type)
+{
+	switch (type) {
+	case FILE_BYTE:
+		return 1;
+
+	case FILE_SHORT:
+	case FILE_LESHORT:
+	case FILE_BESHORT:
+		return 2;
+
+	case FILE_LONG:
+	case FILE_LELONG:
+	case FILE_BELONG:
+	case FILE_MELONG:
+		return 4;
+
+	case FILE_DATE:
+	case FILE_LEDATE:
+	case FILE_BEDATE:
+	case FILE_MEDATE:
+	case FILE_LDATE:
+	case FILE_LELDATE:
+	case FILE_BELDATE:
+	case FILE_MELDATE:
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+		return 4;
+
+	case FILE_QUAD:
+	case FILE_BEQUAD:
+	case FILE_LEQUAD:
+	case FILE_QDATE:
+	case FILE_LEQDATE:
+	case FILE_BEQDATE:
+	case FILE_QLDATE:
+	case FILE_LEQLDATE:
+	case FILE_BEQLDATE:
+	case FILE_QWDATE:
+	case FILE_LEQWDATE:
+	case FILE_BEQWDATE:
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		return 8;
+	default:
+		return (size_t)~0;
+	}
+}
+
 /*
  * Get weight of this magic entry, for sorting purposes.
  */
@@ -792,7 +843,7 @@ private size_t
 apprentice_magic_strength(const struct magic *m)
 {
 #define MULT 10
-	size_t v, val = 2 * MULT;	/* baseline strength */
+	size_t ts, v, val = 2 * MULT;	/* baseline strength */
 
 	switch (m->type) {
 	case FILE_DEFAULT:	/* make sure this sorts last */
@@ -801,41 +852,13 @@ apprentice_magic_strength(const struct m
 		return 0;
 
 	case FILE_BYTE:
-		val += 1 * MULT;
-		break;
-
 	case FILE_SHORT:
 	case FILE_LESHORT:
 	case FILE_BESHORT:
-		val += 2 * MULT;
-		break;
-
 	case FILE_LONG:
 	case FILE_LELONG:
 	case FILE_BELONG:
 	case FILE_MELONG:
-		val += 4 * MULT;
-		break;
-
-	case FILE_PSTRING:
-	case FILE_STRING:
-		val += m->vallen * MULT;
-		break;
-
-	case FILE_BESTRING16:
-	case FILE_LESTRING16:
-		val += m->vallen * MULT / 2;
-		break;
-
-	case FILE_SEARCH:
-		val += m->vallen * MAX(MULT / m->vallen, 1);
-		break;
-
-	case FILE_REGEX:
-		v = nonmagic(m->value.s);
-		val += v * MAX(MULT / v, 1);
-		break;
-
 	case FILE_DATE:
 	case FILE_LEDATE:
 	case FILE_BEDATE:
@@ -847,9 +870,6 @@ apprentice_magic_strength(const struct m
 	case FILE_FLOAT:
 	case FILE_BEFLOAT:
 	case FILE_LEFLOAT:
-		val += 4 * MULT;
-		break;
-
 	case FILE_QUAD:
 	case FILE_BEQUAD:
 	case FILE_LEQUAD:
@@ -865,7 +885,29 @@ apprentice_magic_strength(const struct m
 	case FILE_DOUBLE:
 	case FILE_BEDOUBLE:
 	case FILE_LEDOUBLE:
-		val += 8 * MULT;
+		ts = typesize(m->type);
+		if (ts == (size_t)~0)
+			abort();
+		val += ts * MULT;
+		break;
+
+	case FILE_PSTRING:
+	case FILE_STRING:
+		val += m->vallen * MULT;
+		break;
+
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+		val += m->vallen * MULT / 2;
+		break;
+
+	case FILE_SEARCH:
+		val += m->vallen * MAX(MULT / m->vallen, 1);
+		break;
+
+	case FILE_REGEX:
+		v = nonmagic(m->value.s);
+		val += v * MAX(MULT / v, 1);
 		break;
 
 	case FILE_INDIRECT:
@@ -2572,6 +2614,9 @@ check_format(struct magic_set *ms, struc
 private int
 getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
 {
+	char *ep;
+	uint64_t ull;
+
 	switch (m->type) {
 	case FILE_BESTRING16:
 	case FILE_LESTRING16:
@@ -2600,43 +2645,79 @@ getvalue(struct magic_set *ms, struct ma
 			return rc ? -1 : 0;
 		}
 		return 0;
+	default:
+		if (m->reln == 'x')
+			return 0;
+		break;
+	}
+
+	switch (m->type) {
 	case FILE_FLOAT:
 	case FILE_BEFLOAT:
 	case FILE_LEFLOAT:
-		if (m->reln != 'x') {
-			char *ep;
-			errno = 0;
+		errno = 0;
 #ifdef HAVE_STRTOF
-			m->value.f = strtof(*p, &ep);
+		m->value.f = strtof(*p, &ep);
 #else
-			m->value.f = (float)strtod(*p, &ep);
+		m->value.f = (float)strtod(*p, &ep);
 #endif
-			if (errno == 0)
-				*p = ep;
-		}
+		if (errno == 0)
+			*p = ep;
 		return 0;
 	case FILE_DOUBLE:
 	case FILE_BEDOUBLE:
 	case FILE_LEDOUBLE:
-		if (m->reln != 'x') {
-			char *ep;
-			errno = 0;
-			m->value.d = strtod(*p, &ep);
-			if (errno == 0)
-				*p = ep;
-		}
+		errno = 0;
+		m->value.d = strtod(*p, &ep);
+		if (errno == 0)
+			*p = ep;
 		return 0;
 	default:
-		if (m->reln != 'x') {
-			char *ep;
-			errno = 0;
-			m->value.q = file_signextend(ms, m,
-			    (uint64_t)strtoull(*p, &ep, 0));
-			if (errno == 0) {
-				*p = ep;
-				eatsize(p);
+		errno = 0;
+		ull = (uint64_t)strtoull(*p, &ep, 0);
+		m->value.q = file_signextend(ms, m, ull);
+		if (*p == ep) {
+			file_magwarn(ms, "Unparseable number `%s'", *p);
+		} else {
+			size_t ts = typesize(m->type);
+			uint64_t x;
+			const char *q;
+
+			if (ts == (size_t)~0) {
+				file_magwarn(ms,
+				    "Expected numeric type got `%s'",
+				    type_tbl[m->type].name);
+			}
+			for (q = *p; isspace((unsigned char)*q); q++)
+				continue;
+			if (*q == '-')
+				ull = -(int64_t)ull;
+			switch (ts) {
+			case 1:
+				x = (uint64_t)(ull & ~0xffULL);
+				break;
+			case 2:
+				x = (uint64_t)(ull & ~0xffffULL);
+				break;
+			case 4:
+				x = (uint64_t)(ull & ~0xffffffffULL);
+				break;
+			case 8:
+				x = 0;
+				break;
+			default:
+				abort();
+			}
+			if (x) {
+				file_magwarn(ms, "Overflow for numeric"
+				    " type `%s' value %#" PRIx64,
+				    type_tbl[m->type].name, ull);
 			}
 		}
+		if (errno == 0) {
+			*p = ep;
+			eatsize(p);
+		}
 		return 0;
 	}
 }

Index: src/external/bsd/file/dist/src/cdf.c
diff -u src/external/bsd/file/dist/src/cdf.c:1.14 src/external/bsd/file/dist/src/cdf.c:1.15
--- src/external/bsd/file/dist/src/cdf.c:1.14	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/cdf.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: cdf.c,v 1.14 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: cdf.c,v 1.15 2017/09/08 13:40:25 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008 Christos Zoulas
@@ -40,7 +40,7 @@
 #if 0
 FILE_RCSID("@(#)$File: cdf.c,v 1.106 2017/04/30 17:05:02 christos Exp $")
 #else
-__RCSID("$NetBSD: cdf.c,v 1.14 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: cdf.c,v 1.15 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif
 
@@ -91,6 +91,7 @@ static union {
 #define CDF_CALLOC(n, u) cdf_calloc(__FILE__, __LINE__, (n), (u))
 
 
+/*ARGSUSED*/
 static void *
 cdf_malloc(const char *file __attribute__((__unused__)),
     size_t line __attribute__((__unused__)), size_t n)
@@ -99,6 +100,7 @@ cdf_malloc(const char *file __attribute_
 	return malloc(n);
 }
 
+/*ARGSUSED*/
 static void *
 cdf_realloc(const char *file __attribute__((__unused__)),
     size_t line __attribute__((__unused__)), void *p, size_t n)
@@ -107,6 +109,7 @@ cdf_realloc(const char *file __attribute
 	return realloc(p, n);
 }
 
+/*ARGSUSED*/
 static void *
 cdf_calloc(const char *file __attribute__((__unused__)),
     size_t line __attribute__((__unused__)), size_t n, size_t u)

Index: src/external/bsd/file/dist/src/compress.c
diff -u src/external/bsd/file/dist/src/compress.c:1.13 src/external/bsd/file/dist/src/compress.c:1.14
--- src/external/bsd/file/dist/src/compress.c:1.13	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/compress.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: compress.c,v 1.13 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: compress.c,v 1.14 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Ian F. Darwin 1986-1995.
@@ -38,9 +38,9 @@
 
 #ifndef lint
 #if 0
-FILE_RCSID("@(#)$File: compress.c,v 1.104 2017/03/29 15:57:48 christos Exp $")
+FILE_RCSID("@(#)$File: compress.c,v 1.105 2017/05/25 00:13:03 christos Exp $")
 #else
-__RCSID("$NetBSD: compress.c,v 1.13 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: compress.c,v 1.14 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif
 

Index: src/external/bsd/file/dist/src/file.h
diff -u src/external/bsd/file/dist/src/file.h:1.16 src/external/bsd/file/dist/src/file.h:1.17
--- src/external/bsd/file/dist/src/file.h:1.16	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/file.h	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: file.h,v 1.16 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: file.h,v 1.17 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Ian F. Darwin 1986-1995.
@@ -29,7 +29,7 @@
  */
 /*
  * file.h - definitions for file(1) program
- * @(#)$File: file.h,v 1.182 2017/04/07 19:46:44 christos Exp $
+ * @(#)$File: file.h,v 1.183 2017/08/28 13:39:18 christos Exp $
  */
 
 #ifndef __file_h__
@@ -449,7 +449,7 @@ protected size_t file_printedlen(const s
 protected int file_replace(struct magic_set *, const char *, const char *);
 protected int file_printf(struct magic_set *, const char *, ...)
     __attribute__((__format__(__printf__, 2, 3)));
-protected int file_reset(struct magic_set *);
+protected int file_reset(struct magic_set *, int);
 protected int file_tryelf(struct magic_set *, int, const unsigned char *,
     size_t);
 protected int file_trycdf(struct magic_set *, int, const unsigned char *,
Index: src/external/bsd/file/dist/src/softmagic.c
diff -u src/external/bsd/file/dist/src/softmagic.c:1.16 src/external/bsd/file/dist/src/softmagic.c:1.17
--- src/external/bsd/file/dist/src/softmagic.c:1.16	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/softmagic.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: softmagic.c,v 1.16 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: softmagic.c,v 1.17 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Ian F. Darwin 1986-1995.
@@ -35,9 +35,9 @@
 
 #ifndef	lint
 #if 0
-FILE_RCSID("@(#)$File: softmagic.c,v 1.248 2017/04/21 16:54:57 christos Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.249 2017/06/19 18:30:25 christos Exp $")
 #else
-__RCSID("$NetBSD: softmagic.c,v 1.16 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: softmagic.c,v 1.17 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif	/* lint */
 
@@ -1205,7 +1205,7 @@ mcopy(struct magic_set *ms, union VALUET
 			const char *end;
 			size_t lines, linecnt, bytecnt;
 
-			if (s == NULL) {
+			if (s == NULL || nbytes < offset) {
 				ms->search.s_len = 0;
 				ms->search.s = NULL;
 				return 0;
@@ -1238,7 +1238,7 @@ mcopy(struct magic_set *ms, union VALUET
 					b++;
 			}
 			if (lines)
-				last = RCAST(const char *, s) + bytecnt;
+				last = end;
 
 			ms->search.s = buf;
 			ms->search.s_len = last - buf;

Index: src/external/bsd/file/dist/src/fsmagic.c
diff -u src/external/bsd/file/dist/src/fsmagic.c:1.12 src/external/bsd/file/dist/src/fsmagic.c:1.13
--- src/external/bsd/file/dist/src/fsmagic.c:1.12	Fri Feb 10 12:53:24 2017
+++ src/external/bsd/file/dist/src/fsmagic.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: fsmagic.c,v 1.12 2017/02/10 17:53:24 christos Exp $	*/
+/*	$NetBSD: fsmagic.c,v 1.13 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Ian F. Darwin 1986-1995.
@@ -35,9 +35,9 @@
 
 #ifndef	lint
 #if 0
-FILE_RCSID("@(#)$File: fsmagic.c,v 1.76 2015/04/09 20:01:41 christos Exp $")
+FILE_RCSID("@(#)$File: fsmagic.c,v 1.77 2017/05/24 19:17:50 christos Exp $")
 #else
-__RCSID("$NetBSD: fsmagic.c,v 1.12 2017/02/10 17:53:24 christos Exp $");
+__RCSID("$NetBSD: fsmagic.c,v 1.13 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif	/* lint */
 
@@ -110,14 +110,13 @@ file_fsmagic(struct magic_set *ms, const
 {
 	int ret, did = 0;
 	int mime = ms->flags & MAGIC_MIME;
+	int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION);
 #ifdef	S_IFLNK
 	char buf[BUFSIZ+4];
 	ssize_t nch;
 	struct stat tstatbuf;
 #endif
 
-	if (ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION))
-		return 0;
 	if (fn == NULL)
 		return 0;
 
@@ -174,7 +173,7 @@ file_fsmagic(struct magic_set *ms, const
 	}
 
 	ret = 1;
-	if (!mime) {
+	if (!mime && !silent) {
 #ifdef S_ISUID
 		if (sb->st_mode & S_ISUID)
 			if (file_printf(ms, "%ssetuid", COMMA) == -1)
@@ -197,6 +196,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "directory") == -1)
 				return -1;
+		} else if (silent) {
 		} else if (file_printf(ms, "%sdirectory", COMMA) == -1)
 			return -1;
 		break;
@@ -214,6 +214,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "chardevice") == -1)
 				return -1;
+		} else if (silent) {
 		} else {
 #ifdef HAVE_STRUCT_STAT_ST_RDEV
 # ifdef dv_unit
@@ -248,6 +249,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "blockdevice") == -1)
 				return -1;
+		} else if (silent) {
 		} else {
 #ifdef HAVE_STRUCT_STAT_ST_RDEV
 # ifdef dv_unit
@@ -276,6 +278,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "fifo") == -1)
 				return -1;
+		} else if (silent) {
 		} else if (file_printf(ms, "%sfifo (named pipe)", COMMA) == -1)
 			return -1;
 		break;
@@ -285,6 +288,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "door") == -1)
 				return -1;
+		} else if (silent) {
 		} else if (file_printf(ms, "%sdoor", COMMA) == -1)
 			return -1;
 		break;
@@ -300,6 +304,7 @@ file_fsmagic(struct magic_set *ms, const
 			if (mime) {
 				if (handle_mime(ms, mime, "symlink") == -1)
 					return -1;
+			} else if (silent) {
 			} else if (file_printf(ms,
 			    "%sunreadable symlink `%s' (%s)", COMMA, fn,
 			    strerror(errno)) == -1)
@@ -329,6 +334,7 @@ file_fsmagic(struct magic_set *ms, const
 						if (handle_mime(ms, mime,
 						    "x-path-too-long") == -1)
 							return -1;
+					} else if (silent) {
 					} else if (file_printf(ms,
 					    "%spath too long: `%s'", COMMA,
 					    fn) == -1)
@@ -358,6 +364,7 @@ file_fsmagic(struct magic_set *ms, const
 			if (mime) {
 				if (handle_mime(ms, mime, "symlink") == -1)
 					return -1;
+			} else if (silent) {
 			} else if (file_printf(ms, "%ssymbolic link to %s",
 			    COMMA, buf) == -1)
 				return -1;
@@ -370,6 +377,7 @@ file_fsmagic(struct magic_set *ms, const
 		if (mime) {
 			if (handle_mime(ms, mime, "socket") == -1)
 				return -1;
+		} else if (silent) {
 		} else if (file_printf(ms, "%ssocket", COMMA) == -1)
 			return -1;
 		break;
@@ -392,6 +400,7 @@ file_fsmagic(struct magic_set *ms, const
 			if (mime) {
 				if (handle_mime(ms, mime, "x-empty") == -1)
 					return -1;
+			} else if (silent) {
 			} else if (file_printf(ms, "%sempty", COMMA) == -1)
 				return -1;
 			break;
@@ -405,7 +414,7 @@ file_fsmagic(struct magic_set *ms, const
 		/*NOTREACHED*/
 	}
 
-	if (!mime && did && ret == 0) {
+	if (!silent && !mime && did && ret == 0) {
 	    if (file_printf(ms, " ") == -1)
 		    return -1;
 	}
Index: src/external/bsd/file/dist/src/funcs.c
diff -u src/external/bsd/file/dist/src/funcs.c:1.12 src/external/bsd/file/dist/src/funcs.c:1.13
--- src/external/bsd/file/dist/src/funcs.c:1.12	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/funcs.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: funcs.c,v 1.12 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: funcs.c,v 1.13 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Christos Zoulas 2003.
@@ -30,9 +30,9 @@
 
 #ifndef	lint
 #if 0
-FILE_RCSID("@(#)$File: funcs.c,v 1.92 2017/04/07 20:10:24 christos Exp $")
+FILE_RCSID("@(#)$File: funcs.c,v 1.93 2017/08/28 13:39:18 christos Exp $")
 #else
-__RCSID("$NetBSD: funcs.c,v 1.12 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: funcs.c,v 1.13 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif	/* lint */
 
@@ -334,9 +334,9 @@ simple:
 #endif
 
 protected int
-file_reset(struct magic_set *ms)
+file_reset(struct magic_set *ms, int checkloaded)
 {
-	if (ms->mlist[0] == NULL) {
+	if (checkloaded && ms->mlist[0] == NULL) {
 		file_error(ms, 0, "no magic files loaded");
 		return -1;
 	}

Index: src/external/bsd/file/dist/src/magic.c
diff -u src/external/bsd/file/dist/src/magic.c:1.11 src/external/bsd/file/dist/src/magic.c:1.12
--- src/external/bsd/file/dist/src/magic.c:1.11	Fri Feb 10 12:53:24 2017
+++ src/external/bsd/file/dist/src/magic.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: magic.c,v 1.11 2017/02/10 17:53:24 christos Exp $	*/
+/*	$NetBSD: magic.c,v 1.12 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Christos Zoulas 2003.
@@ -36,9 +36,9 @@
 
 #ifndef	lint
 #if 0
-FILE_RCSID("@(#)$File: magic.c,v 1.100 2016/07/18 11:43:05 christos Exp $")
+FILE_RCSID("@(#)$File: magic.c,v 1.102 2017/08/28 13:39:18 christos Exp $")
 #else
-__RCSID("$NetBSD: magic.c,v 1.11 2017/02/10 17:53:24 christos Exp $");
+__RCSID("$NetBSD: magic.c,v 1.12 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif	/* lint */
 
@@ -173,7 +173,7 @@ DllMain(HINSTANCE hinstDLL, DWORD fdwRea
 {
 	if (fdwReason == DLL_PROCESS_ATTACH)
 		_w32_dll_instance = hinstDLL;
-	return TRUE;
+	return 1;
 }
 #endif
 
@@ -415,7 +415,7 @@ file_or_fd(struct magic_set *ms, const c
 	int	ispipe = 0;
 	off_t	pos = (off_t)-1;
 
-	if (file_reset(ms) == -1)
+	if (file_reset(ms, 1) == -1)
 		goto out;
 
 	/*
@@ -544,7 +544,7 @@ magic_buffer(struct magic_set *ms, const
 {
 	if (ms == NULL)
 		return NULL;
-	if (file_reset(ms) == -1)
+	if (file_reset(ms, 1) == -1)
 		return NULL;
 	/*
 	 * The main work is done here!
@@ -574,6 +574,15 @@ magic_errno(struct magic_set *ms)
 }
 
 public int
+magic_getflags(struct magic_set *ms)
+{
+	if (ms == NULL)
+		return -1;
+
+	return ms->flags;
+}
+
+public int
 magic_setflags(struct magic_set *ms, int flags)
 {
 	if (ms == NULL)

Index: src/external/bsd/file/dist/src/readelf.c
diff -u src/external/bsd/file/dist/src/readelf.c:1.15 src/external/bsd/file/dist/src/readelf.c:1.16
--- src/external/bsd/file/dist/src/readelf.c:1.15	Wed May 24 20:11:26 2017
+++ src/external/bsd/file/dist/src/readelf.c	Fri Sep  8 09:40:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: readelf.c,v 1.15 2017/05/25 00:11:26 christos Exp $	*/
+/*	$NetBSD: readelf.c,v 1.16 2017/09/08 13:40:25 christos Exp $	*/
 
 /*
  * Copyright (c) Christos Zoulas 2003.
@@ -30,9 +30,9 @@
 
 #ifndef lint
 #if 0
-FILE_RCSID("@(#)$File: readelf.c,v 1.136 2017/03/29 19:09:52 christos Exp $")
+FILE_RCSID("@(#)$File: readelf.c,v 1.138 2017/08/27 07:55:02 christos Exp $")
 #else
-__RCSID("$NetBSD: readelf.c,v 1.15 2017/05/25 00:11:26 christos Exp $");
+__RCSID("$NetBSD: readelf.c,v 1.16 2017/09/08 13:40:25 christos Exp $");
 #endif
 #endif
 
@@ -517,7 +517,7 @@ do_bid_note(struct magic_set *ms, unsign
     size_t noff, size_t doff, int *flags)
 {
 	if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 &&
-	    type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) {
+	    type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) {
 		uint8_t desc[20];
 		const char *btype;
 		uint32_t i;
@@ -732,11 +732,11 @@ do_core_note(struct magic_set *ms, unsig
 			    "gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)",
 			    file_printable(sbuf, sizeof(sbuf),
 			    CAST(char *, pi.cpi_name)),
-			    elf_getu32(swap, pi.cpi_pid),
+			    elf_getu32(swap, (uint32_t)pi.cpi_pid),
 			    elf_getu32(swap, pi.cpi_euid),
 			    elf_getu32(swap, pi.cpi_egid),
 			    elf_getu32(swap, pi.cpi_nlwps),
-			    elf_getu32(swap, pi.cpi_siglwp),
+			    elf_getu32(swap, (uint32_t)pi.cpi_siglwp),
 			    elf_getu32(swap, pi.cpi_signo),
 			    elf_getu32(swap, pi.cpi_sigcode)) == -1)
 				return 1;
@@ -914,6 +914,7 @@ get_string_on_virtaddr(struct magic_set 
 }
 
 
+/*ARGSUSED*/
 private int
 do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
     int swap, uint32_t namesz __attribute__((__unused__)),
@@ -1215,8 +1216,8 @@ doshn(struct magic_set *ms, int clazz, i
 	size_t nbadcap = 0;
 	void *nbuf;
 	off_t noff, coff, name_off;
-	uint64_t cap_hw1 = 0;	/* SunOS 5.x hardware capabilites */
-	uint64_t cap_sf1 = 0;	/* SunOS 5.x software capabilites */
+	uint64_t cap_hw1 = 0;	/* SunOS 5.x hardware capabilities */
+	uint64_t cap_sf1 = 0;	/* SunOS 5.x software capabilities */
 	char name[50];
 	ssize_t namesize;
 

Index: src/external/bsd/file/dist/tests/Makefile.in
diff -u src/external/bsd/file/dist/tests/Makefile.in:1.11 src/external/bsd/file/dist/tests/Makefile.in:1.12
--- src/external/bsd/file/dist/tests/Makefile.in:1.11	Wed May 24 20:11:27 2017
+++ src/external/bsd/file/dist/tests/Makefile.in	Fri Sep  8 09:40:25 2017
@@ -297,6 +297,8 @@ escapevel.result \
 escapevel.testfile \
 gedcom.result \
 gedcom.testfile \
+hddrawcopytool.result \
+hddrawcopytool.testfile \
 issue311docx.result \
 issue311docx.testfile
 

Index: src/external/bsd/file/include/config.h
diff -u src/external/bsd/file/include/config.h:1.10 src/external/bsd/file/include/config.h:1.11
--- src/external/bsd/file/include/config.h:1.10	Wed May 24 20:11:27 2017
+++ src/external/bsd/file/include/config.h	Fri Sep  8 09:40:25 2017
@@ -275,7 +275,7 @@
 #define PACKAGE_NAME "file"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "file 5.31"
+#define PACKAGE_STRING "file 5.32"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "file"
@@ -284,7 +284,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "5.31"
+#define PACKAGE_VERSION "5.32"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -315,7 +315,7 @@
 
 
 /* Version number of package */
-#define VERSION "5.31"
+#define VERSION "5.32"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */

Reply via email to