svn commit: r288143 - in head: contrib/file contrib/file/doc contrib/file/magic/Magdir contrib/file/src lib/libmagic

Xin LI delphij at FreeBSD.org
Wed Sep 23 05:39:30 UTC 2015


Author: delphij
Date: Wed Sep 23 05:39:20 2015
New Revision: 288143
URL: https://svnweb.freebsd.org/changeset/base/288143

Log:
  MFV r288140: update file to 5.25.
  
  MFC after:	1 month

Modified:
  head/contrib/file/ChangeLog
  head/contrib/file/configure
  head/contrib/file/configure.ac
  head/contrib/file/doc/file.man
  head/contrib/file/doc/libmagic.man
  head/contrib/file/doc/magic.man
  head/contrib/file/magic/Magdir/adventure
  head/contrib/file/magic/Magdir/apple
  head/contrib/file/magic/Magdir/archive
  head/contrib/file/magic/Magdir/c-lang
  head/contrib/file/magic/Magdir/c64
  head/contrib/file/magic/Magdir/compress
  head/contrib/file/magic/Magdir/database
  head/contrib/file/magic/Magdir/filesystems
  head/contrib/file/magic/Magdir/frame
  head/contrib/file/magic/Magdir/iff
  head/contrib/file/magic/Magdir/images
  head/contrib/file/magic/Magdir/karma
  head/contrib/file/magic/Magdir/linux
  head/contrib/file/magic/Magdir/make
  head/contrib/file/magic/Magdir/map
  head/contrib/file/magic/Magdir/msdos
  head/contrib/file/magic/Magdir/netscape
  head/contrib/file/magic/Magdir/python
  head/contrib/file/magic/Magdir/scientific
  head/contrib/file/magic/Magdir/sgi
  head/contrib/file/magic/Magdir/sgml
  head/contrib/file/magic/Magdir/windows
  head/contrib/file/src/apprentice.c
  head/contrib/file/src/file.c
  head/contrib/file/src/file.h
  head/contrib/file/src/file_opts.h
  head/contrib/file/src/funcs.c
  head/contrib/file/src/gmtime_r.c
  head/contrib/file/src/localtime_r.c
  head/contrib/file/src/magic.c
  head/contrib/file/src/magic.h
  head/contrib/file/src/magic.h.in
  head/contrib/file/src/print.c
  head/contrib/file/src/readelf.c
  head/contrib/file/src/softmagic.c
  head/lib/libmagic/config.h
Directory Properties:
  head/contrib/file/   (props changed)

Modified: head/contrib/file/ChangeLog
==============================================================================
--- head/contrib/file/ChangeLog	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/ChangeLog	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,3 +1,19 @@
+2015-09-16   9:50  Christos Zoulas <christos at zoulas.com>
+	
+	* release 5.25
+
+2015-09-11  13:25  Christos Zoulas <christos at zoulas.com>
+
+	* add a limit to the length of regex searches
+
+2015-09-08   9:50  Christos Zoulas <christos at zoulas.com>
+
+	* fix problems with --parameter (Christoph Biedl)
+
+2015-07-11  10:35  Christos Zoulas <christos at zoulas.com>
+
+	* Windows fixes PR/466 (Jason Hood)
+
 2015-07-09  10:35  Christos Zoulas <christos at zoulas.com>
 
 	* release 5.24

Modified: head/contrib/file/configure
==============================================================================
--- head/contrib/file/configure	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/configure	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for file 5.24.
+# Generated by GNU Autoconf 2.69 for file 5.25.
 #
 # Report bugs to <christos at astron.com>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='file'
 PACKAGE_TARNAME='file'
-PACKAGE_VERSION='5.24'
-PACKAGE_STRING='file 5.24'
+PACKAGE_VERSION='5.25'
+PACKAGE_STRING='file 5.25'
 PACKAGE_BUGREPORT='christos at astron.com'
 PACKAGE_URL=''
 
@@ -1327,7 +1327,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.24 to adapt to many kinds of systems.
+\`configure' configures file 5.25 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1397,7 +1397,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of file 5.24:";;
+     short | recursive ) echo "Configuration of file 5.25:";;
    esac
   cat <<\_ACEOF
 
@@ -1507,7 +1507,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-file configure 5.24
+file configure 5.25
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2163,7 +2163,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.24, which was
+It was created by file $as_me 5.25, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3029,7 +3029,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='file'
- VERSION='5.24'
+ VERSION='5.25'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15036,7 +15036,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.24, which was
+This file was extended by file $as_me 5.25, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15102,7 +15102,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.24
+file config.status 5.25
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: head/contrib/file/configure.ac
==============================================================================
--- head/contrib/file/configure.ac	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/configure.ac	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([file],[5.24],[christos at astron.com])
+AC_INIT([file],[5.25],[christos at astron.com])
 AM_INIT_AUTOMAKE([subdir-objects foreign])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 

Modified: head/contrib/file/doc/file.man
==============================================================================
--- head/contrib/file/doc/file.man	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/doc/file.man	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
-.\" $File: file.man,v 1.117 2015/06/03 19:51:27 christos Exp $
-.Dd June 3, 2015
+.\" $File: file.man,v 1.118 2015/09/11 17:24:09 christos Exp $
+.Dd September 11, 2015
 .Dt FILE __CSECTION__
 .Os
 .Sh NAME
@@ -316,6 +316,7 @@ Set various parameter limits.
 .It Li elf_notes Ta 256 Ta max ELF notes processed
 .It Li elf_phnum Ta 128 Ta max ELF program sections processed
 .It Li elf_shnum Ta 32768 Ta max ELF sections processed
+.It Li regex Ta 8192 Ta length limit for regex searches
 .El
 .It Fl r , Fl Fl raw
 Don't translate unprintable characters to \eooo.

Modified: head/contrib/file/doc/libmagic.man
==============================================================================
--- head/contrib/file/doc/libmagic.man	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/doc/libmagic.man	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,4 +1,4 @@
-.\" $File: libmagic.man,v 1.37 2015/06/03 18:21:24 christos Exp $
+.\" $File: libmagic.man,v 1.38 2015/09/11 17:24:09 christos Exp $
 .\"
 .\" Copyright (c) Christos Zoulas 2003.
 .\" All Rights Reserved.
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd June 3, 2015
+.Dd September 11, 2015
 .Dt LIBMAGIC 3
 .Os
 .Sh NAME
@@ -291,6 +291,7 @@ library.
 .It Li MAGIC_PARAM_ELF_NOTES_MAX Ta size_t Ta 256
 .It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128
 .It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768
+.It Li MAGIC_PARAM_REGEX_MAX Ta size_t Ta 8192
 .El
 .Pp
 The

Modified: head/contrib/file/doc/magic.man
==============================================================================
--- head/contrib/file/doc/magic.man	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/doc/magic.man	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,4 +1,4 @@
-.\" $File: magic.man,v 1.85 2015/01/01 17:07:34 christos Exp $
+.\" $File: magic.man,v 1.86 2015/09/08 13:48:44 christos Exp $
 .Dd January 1, 2015
 .Dt MAGIC __FSECTION__
 .Os
@@ -200,7 +200,7 @@ interpreted as a UNIX-style date, but in
 than UTC.
 .It Dv indirect
 Starting at the given offset, consult the magic database again.
-The offset of th
+The offset of the
 .Dv indirect
 magic is by default absolute in the file, but one can specify
 .Dv /r

Modified: head/contrib/file/magic/Magdir/adventure
==============================================================================
--- head/contrib/file/magic/Magdir/adventure	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/adventure	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: adventure,v 1.14 2012/06/21 01:32:26 christos Exp $
+# $File: adventure,v 1.15 2015/09/07 10:03:21 christos Exp $
 # adventure: file(1) magic for Adventure game files
 #
 # from Allen Garvin <earendil at faeryland.tamu-commerce.edu>
@@ -17,6 +17,7 @@
 # Infocom (see z-machine)
 #------------------------------------------------------------------------------
 # Z-machine:  file(1) magic for Z-machine binaries.
+# Sanity checks by David Griffith <dave at 661.org>
 # Updated by Adam Buchbinder <adam.buchbinder at gmail.com>
 #
 #http://www.gnelson.demon.co.uk/zspec/sect11.html
@@ -41,10 +42,12 @@
 >>>>>>>2	ubeshort	< 10 	Release %d /
 >>>>>>>>18	string		>\0	Serial %.6s)
 !:strength + 40
+!:mime	application/x-zmachine
 
 #------------------------------------------------------------------------------
 # Glulx:  file(1) magic for Glulx binaries.
 #
+# David Griffith <dave at 661.org>
 # I haven't checked for false matches yet.
 #
 0	string			Glul	Glulx game data
@@ -52,7 +55,7 @@
 >>6	byte			x	\b.%d
 >>8	byte			x	\b.%d)
 >36	string			Info	Compiled by Inform
-
+!:mime	application/x-glulx
 
 
 # For Quetzal and blorb magic see iff
@@ -66,11 +69,13 @@
 >9	belong  !0x0A0D1A00	game data, CORRUPTED
 >9	belong	 0x0A0D1A00
 >>13	string	>\0		%s game data
+!:mime	application/x-tads
 #  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
 0	string	TADS2\ rsc	TADS
 >9	belong  !0x0A0D1A00	resource data, CORRUPTED
 >9	belong	 0x0A0D1A00
 >>13	string	>\0		%s resource data
+!:mime	application/x-tads
 #  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
 #  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
 # "TADS2 save\n\r\032\0" and the interpreter version. 
@@ -78,12 +83,14 @@
 >12	belong	!0x0A0D1A00	saved game data, CORRUPTED
 >12	belong	 0x0A0D1A00
 >>(16.s+32) string >\0		%s saved game data
+!:mime	application/x-tads
 #  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
 #  version.
 0	string	TADS2\ save	TADS
 >10	belong	!0x0A0D1A00	saved game data, CORRUPTED
 >10	belong	 0x0A0D1A00
 >>14	string	>\0		%s saved game data
+!:mime	application/x-tads
 
 # TADS (Text Adventure Development System) version 3
 #  Game files start with "T3-image\015\012\032"
@@ -97,14 +104,18 @@
 >>11	byte	x		\b%c
 >>12	byte	x		\b%c
 >>13	byte	x		\b%c)
+!:mime	application/x-t3vm-image
 
+# edited by David Griffith <dave at 661.org>
 # Danny Milosavljevic <danny.milo at gmx.net>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0	belong	0x3C423FC9
-#>4	belong	0x6A87C2CF	Adrift game file
-#!:mime	application/x-adrift
+# These are ADRIFT (adventure game standard) game files, extension .taf
+# Checked from source at (http://www.adrift.co/) and various taf files 
+# found at the Interactive Fiction Archive (http://ifarchive.org/)
+0	belong  0x3C423FC9
+>4	belong  0x6A87C2CF	Adrift game file version
+>>8	belong  0x94453661	3.80
+>>8	belong  0x94453761	3.90
+>>8	belong  0x93453E61	4.0
+>>8	belong  0x92453E61	5.0
+>>8	default x		unknown
+!:mime	application/x-adrift

Modified: head/contrib/file/magic/Magdir/apple
==============================================================================
--- head/contrib/file/magic/Magdir/apple	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/apple	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: apple,v 1.30 2015/04/13 13:09:06 christos Exp $
+# $File: apple,v 1.31 2015/08/29 07:10:35 christos Exp $
 # apple:  file(1) magic for Apple file formats
 #
 0	search/1/t	FiLeStArTfIlEsTaRt	binscii (apple ][) text
@@ -265,14 +265,14 @@
 >>20	beshort x			\b, descriptors %d
 # Assume 	8 partitions each at a multiple of the sector size.
 # We could glean this from the partition descriptors, but they are empty!?!?
->>(2.S*1)	indirect		\b, contains[@0x%x]: 
->>(2.S*2)	indirect		\b, contains[@0x%x]: 
->>(2.S*3)	indirect		\b, contains[@0x%x]: 
->>(2.S*4)	indirect		\b, contains[@0x%x]: 
->>(2.S*5)	indirect		\b, contains[@0x%x]: 
->>(2.S*6)	indirect		\b, contains[@0x%x]: 
->>(2.S*7)	indirect		\b, contains[@0x%x]: 
->>(2.S*8)	indirect		\b, contains[@0x%x]: 
+>>(2.S*1)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*2)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*3)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*4)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*5)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*6)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*7)	indirect	x	\b, contains[@0x%x]: 
+>>(2.S*8)	indirect	x	\b, contains[@0x%x]: 
 
 # Yes, the 3rd and 4th bytes are reserved, but we use them to make the
 # magic stronger.

Modified: head/contrib/file/magic/Magdir/archive
==============================================================================
--- head/contrib/file/magic/Magdir/archive	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/archive	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: archive,v 1.90 2015/04/24 15:44:12 christos Exp $
+# $File: archive,v 1.91 2015/09/16 13:49:33 christos Exp $
 # archive:  file(1) magic for archive formats (see also "msdos" for self-
 #           extracting compressed archives)
 #
@@ -434,16 +434,34 @@
 # AIN
 0	string	\x33\x18 AIN archive data
 0	string	\x33\x17 AIN archive data
-# XPA32
-0	string	xpa\0\1 XPA32 archive data
+# XPA32 test moved and merged with XPA by Joerg Jenderek at Sep 2015
 # SZip (TODO: doesn't catch all versions)
 0	string	SZ\x0a\4 SZip archive data
 # XPack DiskImage
-0	string	jm XPack DiskImage archive data
+# *.XDI updated by Joerg Jenderek Sep 2015
+# ftp://ftp.sac.sk/pub/sac/pack/0index.txt 
+# GRR: this test is still too general as it catches also text files starting with jm
+0	string	jm	
+# only found examples with this additional characteristic 2 bytes
+>2	string	\x2\x4	Xpack DiskImage archive data
+#!:ext xdi
 # XPack Data
-0	string	xpa XPack archive data
+# *.xpa updated by Joerg Jenderek Sep 2015
+# ftp://ftp.elf.stuba.sk/pub/pc/pack/
+0	string	xpa	XPA
+!:ext	xpa
+# XPA32
+# ftp://ftp.elf.stuba.sk/pub/pc/pack/xpa32.zip
+# created by XPA32.EXE version 1.0.2 for Windows
+>0	string	xpa\0\1 \b32 archive data
+# created by XPACK.COM version 1.67m or 1.67r with short 0x1800 
+>3	ubeshort	!0x0001	\bck archive data
 # XPack Single Data
-0	string	\xc3\x8d\ jm XPack single archive data
+# changed by Joerg Jenderek Sep 2015 back to like in version 5.12
+# letter 'I'+ acute accent is equivalent to \xcd
+0	string	\xcd\ jm	Xpack single archive data
+#!:mime	application/x-xpa-compressed
+!:ext xpa
 
 # TODO: missing due to unknown magic/magic at end of file:
 #DWC

Modified: head/contrib/file/magic/Magdir/c-lang
==============================================================================
--- head/contrib/file/magic/Magdir/c-lang	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/c-lang	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: c-lang,v 1.19 2014/06/03 19:17:27 christos Exp $
+# $File: c-lang,v 1.20 2015/07/27 14:33:10 christos Exp $
 # c-lang:  file(1) magic for C and related languages programs
 #
 
@@ -29,7 +29,7 @@
 
 # C++
 # The strength of these rules is increased so they beat the C rules above
-0	regex	\^template[\ \t\n]+	C++ source text
+0	regex	\^template[\ \t]+<.*>[\ \t\n]+	C++ source text
 !:strength + 5
 !:mime	text/x-c++
 0	regex	\^virtual[\ \t\n]+		C++ source text

Modified: head/contrib/file/magic/Magdir/c64
==============================================================================
--- head/contrib/file/magic/Magdir/c64	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/c64	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: c64,v 1.5 2009/09/19 16:28:08 christos Exp $
+# $File: c64,v 1.6 2015/08/24 05:17:42 christos Exp $
 # c64:  file(1) magic for various commodore 64 related files
 #
 # From: Dirk Jagdmann <doj at cubic.org>
@@ -41,3 +41,9 @@
 >32	leshort		x		Version:0x%x
 >36	leshort		!0		Entries:%i
 >40	string		x		Name:%.24s
+
+# Raw tape file format (.tap files)
+# Esa Hyyti <esa at netlab.tkk.fi>
+0	string		C64-TAPE-RAW	C64 Raw Tape File (.tap),
+>0x0c	byte		x		Version:%u,
+>0x10   lelong		x		Length:%u cycles

Modified: head/contrib/file/magic/Magdir/compress
==============================================================================
--- head/contrib/file/magic/Magdir/compress	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/compress	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: compress,v 1.63 2015/03/11 19:27:35 christos Exp $
+# $File: compress,v 1.64 2015/07/27 15:41:09 christos Exp $
 # compress:  file(1) magic for pure-compression formats (no archives)
 #
 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
@@ -258,7 +258,8 @@
 !:mime	application/x-qpress
 
 # Zlib https://www.ietf.org/rfc/rfc6713.txt
-0	beshort%31	=0	
->0	byte&0xf	=8
->>0	byte&0x80 	=0	zlib compressed data
+0	string/b	x
+>0	beshort%31	=0	
+>>0	byte&0xf	=8
+>>>0	byte&0x80 	=0	zlib compressed data
 !:mime	application/zlib

Modified: head/contrib/file/magic/Magdir/database
==============================================================================
--- head/contrib/file/magic/Magdir/database	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/database	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: database,v 1.44 2015/07/02 18:25:57 christos Exp $
+# $File: database,v 1.45 2015/09/09 16:25:29 christos Exp $
 # database:  file(1) magic for various databases
 #
 # extracted from header/code files by Graeme Wilford (eep2gw at ee.surrey.ac.uk)
@@ -541,3 +541,7 @@
 
 # IDA (Interactive Disassembler) database
 0	string		IDA1	IDA (Interactive Disassembler) database
+
+# Hopper (reverse engineering tool) http://www.hopperapp.com/
+0	string		hopperdb	Hopper database
+

Modified: head/contrib/file/magic/Magdir/filesystems
==============================================================================
--- head/contrib/file/magic/Magdir/filesystems	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/filesystems	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: filesystems,v 1.109 2015/02/22 01:22:54 christos Exp $
+# $File: filesystems,v 1.111 2015/09/09 16:26:54 christos Exp $
 # filesystems:  file(1) magic for different filesystems
 #
 0	name	partid  
@@ -1721,7 +1721,7 @@
 0x410	leshort		0x137f
 !:strength / 2
 >0x402	beshort		< 100
->0x402	beshort		> -1		Minix filesystem, V1, %d zones
+>0x402	beshort		> -1		Minix filesystem, V1, 14 char names, %d zones
 >0x1e	string		minix		\b, bootable
 0x410	beshort		0x137f
 !:strength / 2
@@ -1740,27 +1740,26 @@
 >0x1e	string		minix		\b, bootable
 0x410	leshort		0x2468
 >0x402	beshort		< 100
->>0x402	beshort		> -1		Minix filesystem, V2, %d zones
+>>0x402	beshort		> -1		Minix filesystem, V2, 14 char names
 >0x1e	string		minix		\b, bootable
 0x410	beshort		0x2468
 >0x402	beshort		< 100
->0x402	beshort		> -1		Minix filesystem, V2 (big endian), %d zones
+>0x402	beshort		> -1		Minix filesystem, V2 (big endian)
 >0x1e	string		minix		\b, bootable
-
 0x410	leshort		0x2478
 >0x402	beshort		< 100
->0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
+>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
 >0x1e	string		minix		\b, bootable
 0x410	leshort		0x2478
 >0x402	beshort		< 100
->0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
+>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
 >0x1e	string		minix		\b, bootable
 0x410	beshort		0x2478
->0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian), %d zones
->0x1e	string		minix		\b, bootable
-0x410	leshort		0x4d5a
->0x402	beshort		!0		Minix filesystem, V3, %d zones
+>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian)
 >0x1e	string		minix		\b, bootable
+0x418	leshort		0x4d5a
+>0x402	beshort		<100
+>>0x402	beshort		> -1		Minix filesystem, V3, 60 char names
 
 # SGI disk labels - Nathan Scott <nathans at debian.org>
 0	belong		0x0BE5A941	SGI disk label (volume header)
@@ -2209,13 +2208,21 @@
 >>0x10024        belong          x               (blocksize %d,
 >>0x10060        string          >\0             lockproto %s)
 
-# BTRFS
-0x10040         string          _BHRfS_M        BTRFS Filesystem
->0x1012b        string          >\0             (label "%s",
->0x10090        lelong          x               sectorsize %d,
->0x10094        lelong          x               nodesize %d,
->0x10098        lelong          x               leafsize %d)
-
+# Russell Coker <russell at coker.com.au>
+0x10040		string	_BHRfS_M	BTRFS Filesystem
+>0x1012b	string	>\0		label "%s",
+>0x10090	lelong	x		sectorsize %d,
+>0x10094	lelong	x		nodesize %d,
+>0x10098	lelong	x		leafsize %d,
+>0x10020	belong	x		UUID=%8x-
+>0x10024	beshort	x		\b%4x-
+>0x10026	beshort	x		\b%4x-
+>0x10028	beshort	x		\b%4x-
+>0x1002a	beshort	x		\b%4x
+>0x1002c	belong	x		\b%8x,
+>0x10078	lequad	x		%lld/
+>0x10070	lequad	x		\b%lld bytes used,
+>0x10088	lequad	x		%lld devices
 
 # dvdisaster's .ecc
 # From: "Nelson A. de Oliveira" <naoliv at gmail.com>

Modified: head/contrib/file/magic/Magdir/frame
==============================================================================
--- head/contrib/file/magic/Magdir/frame	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/frame	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: frame,v 1.12 2009/09/19 16:28:09 christos Exp $
+# $File: frame,v 1.13 2015/08/29 07:10:35 christos Exp $
 # frame:  file(1) magic for FrameMaker files
 #
 # This stuff came on a FrameMaker demo tape, most of which is
@@ -41,10 +41,10 @@
 >10	string		1.0		 (1.0
 >13	byte		x		  %c)
 # XXX - this book entry should be verified, if you find one, uncomment this
-#0	string		\<Book\ 	FrameMaker Book (ASCII) file
+#0	string		\<Book\040 	FrameMaker Book (ASCII) file
 #!:mime	application/x-mif
 #>6	string		3.0		 (3.0)
 #>6	string		2.0		 (2.0)
 #>6	string		1.0		 (1.0)
-0	string		\<Maker	Intermediate Print File	FrameMaker IPL file
+0	string		\<Maker\040Intermediate\040Print\040File	FrameMaker IPL file
 !:mime	application/x-mif

Modified: head/contrib/file/magic/Magdir/iff
==============================================================================
--- head/contrib/file/magic/Magdir/iff	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/iff	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: iff,v 1.13 2011/09/06 11:00:06 christos Exp $
+# $File: iff,v 1.14 2015/09/07 10:03:21 christos Exp $
 # iff:	file(1) magic for Interchange File Format (see also "audio" & "images")
 #
 # Daniel Quinlan (quinlan at yggdrasil.com) -- IFF was designed by Electronic
@@ -62,6 +62,7 @@
 
 # These go at the end of the iff rules
 #
+# David Griffith <dave at 661.org>
 # I don't see why these might collide with anything else.
 #
 # Interactive Fiction related formats
@@ -69,3 +70,4 @@
 >8	string		IFRS		\b, Blorb Interactive Fiction
 >>24	string		Exec		with executable chunk
 >8	string          IFZS		\b, Z-machine or Glulx saved game file (Quetzal)
+!:mime	application/x-blorb

Modified: head/contrib/file/magic/Magdir/images
==============================================================================
--- head/contrib/file/magic/Magdir/images	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/images	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: images,v 1.106 2015/02/22 01:26:05 christos Exp $
+# $File: images,v 1.107 2015/07/11 14:40:10 christos Exp $
 # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
 # XPM bitmaps)
 #
@@ -37,7 +37,7 @@
 # The next byte following the magic is always whitespace.
 # strength is changed to try these patterns before "x86 boot sector"
 0	name		netpbm
->3	regex/s		=[0-9]{1,50}\ [0-9]{1,50}	Netpbm PPM image data
+>3	regex/s		=[0-9]{1,50}\ [0-9]{1,50}	Netpbm image data
 >>&0	regex		=[0-9]{1,50} 			\b, size = %s x
 >>>&0	regex		=[0-9]{1,50}			\b %s
 
@@ -59,7 +59,6 @@
 !:strength + 45
 !:mime	image/x-portable-pixmap
 
-
 0	string		P4		
 >0	use		netpbm
 >>0	string		x	\b, rawbits, bitmap

Modified: head/contrib/file/magic/Magdir/karma
==============================================================================
--- head/contrib/file/magic/Magdir/karma	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/karma	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,9 +1,9 @@
 
 #------------------------------------------------------------------------------
-# $File: karma,v 1.7 2014/04/30 21:41:02 christos Exp $
+# $File: karma,v 1.8 2015/08/29 07:10:35 christos Exp $
 # karma:  file(1) magic for Karma data files
 #
 # From <rgooch at atnf.csiro.au>
 
-0	string		KarmaRHD Version	Karma Data Structure Version
+0	string	KarmaRHD\040Version	Karma Data Structure Version
 >16	belong		x		%u

Modified: head/contrib/file/magic/Magdir/linux
==============================================================================
--- head/contrib/file/magic/Magdir/linux	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/linux	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: linux,v 1.62 2015/05/03 13:06:36 christos Exp $
+# $File: linux,v 1.63 2015/08/24 05:16:11 christos Exp $
 # linux:  file(1) magic for Linux files
 #
 # Values for Linux/i386 binaries, from Daniel Quinlan <quinlan at yggdrasil.com>
@@ -417,6 +417,25 @@
 0		lelong		0xde020109	locale archive
 >24		lelong		x		%d strings
 
+# Linux Software RAID (mdadm)
+# Russell Coker <russell at coker.com.au>
+0	name	linuxraid
+>16	belong	x		UUID=%8x:
+>20	belong	x		\b%8x:
+>24	belong	x		\b%8x:
+>28	belong	x		\b%8x
+>32	string	x		name=%s
+>72	lelong	x		level=%d
+>92	lelong	x		disks=%d
+
+4096	lelong	0xa92b4efc	Linux Software RAID
+>4100	lelong	x		version 1.2 (%d)
+>4096	use	linuxraid
+
+0	lelong	0xa92b4efc	Linux Software RAID
+>4	lelong	x		version 1.1 (%d)
+>0	use	linuxraid
+
 # Summary:     Database file for mlocate
 # Description: A database file as used by mlocate, a fast implementation
 #              of locate/updatedb. It uses merging to reuse the existing

Modified: head/contrib/file/magic/Magdir/make
==============================================================================
--- head/contrib/file/magic/Magdir/make	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/make	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: make,v 1.1 2011/12/08 12:12:46 rrt Exp $
+# $File: make,v 1.2 2015/08/25 07:34:06 christos Exp $
 # make:  file(1) magic for makefiles
 #
 0	regex/100l	\^CFLAGS	makefile script text

Modified: head/contrib/file/magic/Magdir/map
==============================================================================
--- head/contrib/file/magic/Magdir/map	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/map	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,7 +1,7 @@
 
 
 #------------------------------------------------------------------------------
-# $File: map,v 1.3 2015/07/09 15:16:41 christos Exp $
+# $File: map,v 1.4 2015/08/10 05:18:27 christos Exp $
 # map:  file(1) magic for Map data
 #
 
@@ -25,3 +25,17 @@
 >>53	byte	4		\b (Activity)
 >>53	byte	8		\b (Elevations)
 >>53	byte	10		\b (Totals)
+
+# TOM TOM GPS watches ttbin files:
+# http://github.com/ryanbinns/ttwatch/tree/master/ttbin
+# From: Daniel Lenski
+0	byte	0x20
+>1	leshort	0x0007
+>>0x76	byte	0x20
+>>>0x77	leshort	0x0075		TomTom activity file, v7
+>>>>8	leldate	x		(%s,
+>>>>3	byte    x		device firmware %d.
+>>>>4	byte	x		\b%d.
+>>>>5	byte	x		\b%d,
+>>>>6	leshort	x		product ID %04d)
+

Modified: head/contrib/file/magic/Magdir/msdos
==============================================================================
--- head/contrib/file/magic/Magdir/msdos	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/msdos	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: msdos,v 1.100 2014/06/03 19:17:27 christos Exp $
+# $File: msdos,v 1.101 2015/08/24 05:08:48 christos Exp $
 # msdos:  file(1) magic for MS-DOS files
 #
 
@@ -772,7 +772,7 @@
 0	ulequad	0x3a000000024e4c	MS Advisor help file
 
 # HtmlHelp files (.chm)
-0	string/b	ITSF\003\000\000\000\x60\000\000\000\001\000\000\000	MS Windows HtmlHelp Data
+0	string/b	ITSF\003\000\000\000\x60\000\000\000	MS Windows HtmlHelp Data
 
 # GFA-BASIC (Wolfram Kleff)
 2	string/b	GFA-BASIC3	GFA-BASIC 3 data

Modified: head/contrib/file/magic/Magdir/netscape
==============================================================================
--- head/contrib/file/magic/Magdir/netscape	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/netscape	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: netscape,v 1.6 2009/09/19 16:28:11 christos Exp $
+# $File: netscape,v 1.7 2015/08/24 05:20:52 christos Exp $
 # netscape:  file(1) magic for Netscape files
 # "H. Nanosecond" <aldomel at ix.netcom.com>
 # version 3 and 4 I think
@@ -22,4 +22,5 @@
 
 #
 #This is files ending in .art, FIXME add more rules
-0       string          JG\004\016\0\0\0\0      ART
+0	string	JG\004\016\0\0\0\0	AOL ART image
+0	string	JG\003\016\0\0\0\0	AOL ART image

Modified: head/contrib/file/magic/Magdir/python
==============================================================================
--- head/contrib/file/magic/Magdir/python	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/python	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: python,v 1.26 2014/08/04 05:58:40 christos Exp $
+# $File: python,v 1.27 2015/09/08 13:59:44 christos Exp $
 # python:  file(1) magic for python
 #
 # Outlook puts """ too for urgent messages
@@ -26,12 +26,16 @@
 0	belong		0xee0c0d0a	python 3.4 byte-compiled
 
 0	search/1/w	#!\ /usr/bin/python	Python script text executable
+!:strength + 10
 !:mime text/x-python
 0	search/1/w	#!\ /usr/local/bin/python	Python script text executable
+!:strength + 10
 !:mime text/x-python
 0	search/1	#!/usr/bin/env\ python	Python script text executable
+!:strength + 10
 !:mime text/x-python
-0	search/1	#!\ /usr/bin/env\ python	Python script text executable
+0	search/10	#!\ /usr/bin/env\ python	Python script text executable
+!:strength + 10
 !:mime text/x-python
 
 

Modified: head/contrib/file/magic/Magdir/scientific
==============================================================================
--- head/contrib/file/magic/Magdir/scientific	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/scientific	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: scientific,v 1.9 2014/06/03 19:01:34 christos Exp $
+# $File: scientific,v 1.10 2015/08/24 05:18:55 christos Exp $
 # scientific:  file(1) magic for scientific formats 
 #
 # From: Joe Krahn <krahn at niehs.nih.gov>
@@ -104,3 +104,8 @@
 >>5	byte	x		version %d.0
 >4	byte	>0x00		version %d
 >>5	byte	x		\b.%d
+
+# Type: LXT (interLaced eXtensible Trace)
+# chrysn <chrysn at fsfe.org>
+0	beshort	0x0138	interLaced eXtensible Trace (LXT) file
+>2	beshort	>0	(Version %u)

Modified: head/contrib/file/magic/Magdir/sgi
==============================================================================
--- head/contrib/file/magic/Magdir/sgi	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/sgi	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: sgi,v 1.21 2014/04/30 21:41:02 christos Exp $
+# $File: sgi,v 1.22 2015/08/29 07:10:35 christos Exp $
 # sgi:  file(1) magic for Silicon Graphics operating systems and applications
 #
 # Executable images are handled either in aout (for old-style a.out
@@ -55,8 +55,8 @@
 0	string	WNGZWZSS	Wingz spreadsheet
 0	string	WNGZWZHP	Wingz help file
 #
-0	string	#Inventor V	IRIS Inventor 1.0 file
-0	string	#Inventor V2	Open Inventor 2.0 file
+0	string	#Inventor\040V	IRIS Inventor 1.0 file
+0	string	#Inventor\040V2	Open Inventor 2.0 file
 # GLF is OpenGL stream encoding
 0	string	glfHeadMagic();		GLF_TEXT
 4	belong	0x7d000000		GLF_BINARY_LSB_FIRST

Modified: head/contrib/file/magic/Magdir/sgml
==============================================================================
--- head/contrib/file/magic/Magdir/sgml	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/sgml	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,5 +1,4 @@
-#------------------------------------------------------------------------------
-# $File: sgml,v 1.31 2015/03/11 19:38:04 christos Exp $
+#------------------------------------------------------------------------------ # $File: sgml,v 1.32 2015/07/11 15:08:53 christos Exp $
 # Type:	SVG Vectorial Graphics
 # From:	Noel Torres <tecnico at ejerciciosresueltos.com>
 0	string		\<?xml\ version="
@@ -24,16 +23,16 @@
 
 # xhtml
 0	string/t		\<?xml\ version="
->15	string		>\0
->>19	search/4096/cWbt	\<!doctype\ html	XHTML document text
+>19	search/4096/cWbt	\<!doctype\ html	XHTML document text
+>>15	string		>\0	(version %.3s)
 !:mime	text/html
 0	string/t		\<?xml\ version='
->15	string		>\0
->>19	search/4096/cWbt	\<!doctype\ html	XHTML document text
+>19	search/4096/cWbt	\<!doctype\ html	XHTML document text
+>>15	string		>\0	(version %.3s)
 !:mime	text/html
 0	string/t		\<?xml\ version="
->15	string		>\0
->>19	search/4096/cWbt	\<html	broken XHTML document text
+>19	search/4096/cWbt	\<html	broken XHTML document text
+>>15	string		>\0	(version %.3s)
 !:mime	text/html
 
 #------------------------------------------------------------------------------
@@ -106,9 +105,6 @@
 >15	string/t	>\0			%.3s document text
 >>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
 >>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
-0	search/1/wbt	\<?xml			XML document text
-!:mime	application/xml
-!:strength - 10
 0	search/1/wt	\<?XML			broken XML document text
 !:mime	application/xml
 !:strength - 10

Modified: head/contrib/file/magic/Magdir/windows
==============================================================================
--- head/contrib/file/magic/Magdir/windows	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/magic/Magdir/windows	Wed Sep 23 05:39:20 2015	(r288143)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: windows,v 1.10 2014/09/24 19:52:46 christos Exp $
+# $File: windows,v 1.12 2015/08/29 07:10:35 christos Exp $
 # windows:  file(1) magic for Microsoft Windows
 #
 # This file is mainly reserved for files where programs
@@ -89,7 +89,7 @@
 >20	lelong&16	16	\b, Has Working directory
 >20	lelong&32	32	\b, Has command line arguments
 >20	lelong&64	64	\b, Icon
->>56	lelong			\b number=%d
+>>56	lelong		x	\b number=%d
 >24	lelong&1	1	\b, Read-Only
 >24	lelong&2	2	\b, Hidden
 >24	lelong&4	4	\b, System
@@ -239,6 +239,7 @@
 # http://read.pudn.com/downloads3/sourcecode/windows/248345/win2k/private/windows/setup/setupapi/inf.h__.htm
 # GRR: line below too general as it catches also PDP-11 UNIX/RT ldp
 0		leshort&0xFeFe	0x0000		
+!:strength -5
 # test for unused null bits in PNF_FLAGs
 >4	ulelong&0xFCffFe00	0x00000000	
 # only found 58h for Offset of WinDirPath immediately after _PNF_HEADER structure

Modified: head/contrib/file/src/apprentice.c
==============================================================================
--- head/contrib/file/src/apprentice.c	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/src/apprentice.c	Wed Sep 23 05:39:20 2015	(r288143)
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef	lint
-FILE_RCSID("@(#)$File: apprentice.c,v 1.233 2015/06/10 00:57:41 christos Exp $")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.238 2015/09/12 18:10:42 christos Exp $")
 #endif	/* lint */
 
 #include "magic.h"
@@ -531,6 +531,7 @@ file_ms_alloc(int flags)
 	ms->elf_shnum_max = FILE_ELF_SHNUM_MAX;
 	ms->elf_phnum_max = FILE_ELF_PHNUM_MAX;
 	ms->elf_notes_max = FILE_ELF_NOTES_MAX;
+	ms->regex_max = FILE_REGEX_MAX;
 	return ms;
 free:
 	free(ms);
@@ -540,6 +541,7 @@ free:
 private void
 apprentice_unmap(struct magic_map *map)
 {
+	size_t i;
 	if (map == NULL)
 		return;
 
@@ -552,6 +554,8 @@ apprentice_unmap(struct magic_map *map)
 #endif
 	case MAP_TYPE_MALLOC:
 		free(map->p);
+		for (i = 0; i < MAGIC_SETS; i++)
+			free(map->magic[i]);
 		break;
 	case MAP_TYPE_USER:
 		break;
@@ -1288,6 +1292,7 @@ apprentice_load(struct magic_set *ms, co
 		file_oomem(ms, sizeof(*map));
 		return NULL;
 	}
+	map->type = MAP_TYPE_MALLOC;
 
 	/* print silly verbose header for USG compat. */
 	if (action == FILE_CHECK)
@@ -1348,8 +1353,9 @@ apprentice_load(struct magic_set *ms, co
 			}
 			i = set_text_binary(ms, mset[j].me, mset[j].count, i);
 		}
-		qsort(mset[j].me, mset[j].count, sizeof(*mset[j].me),
-		    apprentice_sort);
+		if (mset[j].me)
+			qsort(mset[j].me, mset[j].count, sizeof(*mset[j].me),
+			    apprentice_sort);
 
 		/*
 		 * Make sure that any level 0 "default" line is last
@@ -2555,12 +2561,14 @@ getvalue(struct magic_set *ms, struct ma
 	case FILE_LEFLOAT:
 		if (m->reln != 'x') {
 			char *ep;
+			errno = 0;
 #ifdef HAVE_STRTOF
 			m->value.f = strtof(*p, &ep);
 #else
 			m->value.f = (float)strtod(*p, &ep);
 #endif
-			*p = ep;
+			if (errno == 0)
+				*p = ep;
 		}
 		return 0;
 	case FILE_DOUBLE:
@@ -2568,17 +2576,22 @@ getvalue(struct magic_set *ms, struct ma
 	case FILE_LEDOUBLE:
 		if (m->reln != 'x') {
 			char *ep;
+			errno = 0;
 			m->value.d = strtod(*p, &ep);
-			*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));
-			*p = ep;
-			eatsize(p);
+			if (errno == 0) {
+				*p = ep;
+				eatsize(p);
+			}
 		}
 		return 0;
 	}
@@ -2614,6 +2627,7 @@ getstr(struct magic_set *ms, struct magi
 			case '\0':
 				if (warn)
 					file_magwarn(ms, "incomplete escape");
+				s--;
 				goto out;
 
 			case '\t':
@@ -2737,6 +2751,7 @@ getstr(struct magic_set *ms, struct magi
 		} else
 			*p++ = (char)c;
 	}
+	--s;
 out:
 	*p = '\0';
 	m->vallen = CAST(unsigned char, (p - origp));
@@ -3209,9 +3224,10 @@ file_pstring_length_size(const struct ma
 	}
 }
 protected size_t
-file_pstring_get_length(const struct magic *m, const char *s)
+file_pstring_get_length(const struct magic *m, const char *ss)
 {
 	size_t len = 0;
+	const unsigned char *s = (const unsigned char *)ss;
 
 	switch (m->str_flags & PSTRING_LEN) {
 	case PSTRING_1_LE:

Modified: head/contrib/file/src/file.c
==============================================================================
--- head/contrib/file/src/file.c	Wed Sep 23 05:14:48 2015	(r288142)
+++ head/contrib/file/src/file.c	Wed Sep 23 05:39:20 2015	(r288143)
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef	lint
-FILE_RCSID("@(#)$File: file.c,v 1.165 2015/06/11 12:52:32 christos Exp $")
+FILE_RCSID("@(#)$File: file.c,v 1.167 2015/09/11 17:24:09 christos Exp $")
 #endif	/* lint */
 
 #include "magic.h"
@@ -131,6 +131,7 @@ private struct {
 	{ "elf_phnum",	MAGIC_PARAM_ELF_PHNUM_MAX, 0 },
 	{ "elf_shnum",	MAGIC_PARAM_ELF_SHNUM_MAX, 0 },
 	{ "elf_notes",	MAGIC_PARAM_ELF_NOTES_MAX, 0 },
+	{ "regex",	MAGIC_PARAM_REGEX_MAX, 0 },
 };
 
 private char *progname;		/* used throughout 		*/
@@ -237,6 +238,7 @@ main(int argc, char *argv[])
 			if (magic == NULL)
 				if ((magic = load(magicfile, flags)) == NULL)
 					return 1;
+			applyparam(magic);
 			e |= unwrap(magic, optarg);
 			++didsomefiles;

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


More information about the svn-src-all mailing list