summaryrefslogtreecommitdiff
path: root/file
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2002-10-01 19:17:55 +0000
committerjbj <devnull@localhost>2002-10-01 19:17:55 +0000
commit6d294939a66d74418a36825f1936b4fe31f3a65e (patch)
tree8b65ffb4823815844214b0f08bef7f22e217db7e /file
parent8a72493bda86309fb6590cafe6113fb4774f7f90 (diff)
downloadlibrpm-tizen-6d294939a66d74418a36825f1936b4fe31f3a65e.tar.gz
librpm-tizen-6d294939a66d74418a36825f1936b4fe31f3a65e.tar.bz2
librpm-tizen-6d294939a66d74418a36825f1936b4fe31f3a65e.zip
Apply patches from file-3.37-8.
CVS patchset: 5744 CVS date: 2002/10/01 19:17:55
Diffstat (limited to 'file')
-rw-r--r--file/Localstuff9
-rw-r--r--file/Magdir/elf118
-rw-r--r--file/file.c3
-rw-r--r--file/magic.mime10
-rw-r--r--file/readelf.c6
5 files changed, 98 insertions, 48 deletions
diff --git a/file/Localstuff b/file/Localstuff
index bd008c160..2b5ca8f40 100644
--- a/file/Localstuff
+++ b/file/Localstuff
@@ -5,3 +5,12 @@
# Id: Localstuff,v 1.3 1995/01/21 21:09:00 christos Exp
# Add any locally observed files here. Remember:
# text if readable, executable if runnable binary, data if unreadable.
+
+# XXX promoted from tex so that *.tfm is not mis-identified as mc68k file.
+# There is no way to detect TeX Font Metric (*.tfm) files without
+# breaking them apart and reading the data. The following patterns
+# match most *.tfm files generated by METAFONT or afm2tfm.
+2 string \000\021 TeX font metric data
+>33 string >\0 (%s)
+2 string \000\022 TeX font metric data
+>33 string >\0 (%s)
diff --git a/file/Magdir/elf b/file/Magdir/elf
index 53a6bc96e..182ee85f5 100644
--- a/file/Magdir/elf
+++ b/file/Magdir/elf
@@ -5,38 +5,45 @@
# We have to check the byte order flag to see what byte order all the
# other stuff in the header is in.
#
-# MIPS R3000 may also be for MIPS R2000.
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
#
# updated by Daniel Quinlan (quinlan@yggdrasil.com)
0 string \177ELF ELF
>4 byte 0 invalid class
>4 byte 1 32-bit
-# only for MIPS
+# only for MIPS - in the future, the ABI field of e_flags should be used.
>>18 beshort 8
>>18 beshort 10
>>>36 belong &0x20 N32
>4 byte 2 64-bit
>5 byte 0 invalid byte order
>5 byte 1 LSB
-# only for MIPS R3000_BE
+# The official e_machine number for MIPS is now #8, regardless of endianness.
+# The second number (#10) will be deprecated later. For now, we still
+# say something if #10 is encountered, but only gory details for #8.
>>18 leshort 8
# only for 32-bit
>>>4 byte 1
->>>>36 lelong&0xf0000000 0x00000000 mips-1
->>>>36 lelong&0xf0000000 0x10000000 mips-2
->>>>36 lelong&0xf0000000 0x20000000 mips-3
->>>>36 lelong&0xf0000000 0x30000000 mips-4
->>>>36 lelong&0xf0000000 0x40000000 mips-5
->>>>36 lelong&0xf0000000 0x50000000 mips-6
+>>>>36 lelong&0xf0000000 0x00000000 MIPS-I
+>>>>36 lelong&0xf0000000 0x10000000 MIPS-II
+>>>>36 lelong&0xf0000000 0x20000000 MIPS-III
+>>>>36 lelong&0xf0000000 0x30000000 MIPS-IV
+>>>>36 lelong&0xf0000000 0x40000000 MIPS-V
+>>>>36 lelong&0xf0000000 0x60000000 MIPS32
+>>>>36 lelong&0xf0000000 0x70000000 MIPS64
+>>>>36 lelong&0xf0000000 0x80000000 MIPS32 rel2
+>>>>36 lelong&0xf0000000 0x90000000 MIPS64 rel2
# only for 64-bit
>>>4 byte 2
->>>>48 lelong&0xf0000000 0x00000000 mips-1
->>>>48 lelong&0xf0000000 0x10000000 mips-2
->>>>48 lelong&0xf0000000 0x20000000 mips-3
->>>>48 lelong&0xf0000000 0x30000000 mips-4
->>>>48 lelong&0xf0000000 0x40000000 mips-5
->>>>48 lelong&0xf0000000 0x50000000 mips-6
+>>>>48 lelong&0xf0000000 0x00000000 MIPS-I
+>>>>48 lelong&0xf0000000 0x10000000 MIPS-II
+>>>>48 lelong&0xf0000000 0x20000000 MIPS-III
+>>>>48 lelong&0xf0000000 0x30000000 MIPS-IV
+>>>>48 lelong&0xf0000000 0x40000000 MIPS-V
+>>>>48 lelong&0xf0000000 0x60000000 MIPS32
+>>>>48 lelong&0xf0000000 0x70000000 MIPS64
+>>>>48 lelong&0xf0000000 0x80000000 MIPS32 rel2
+>>>>48 lelong&0xf0000000 0x90000000 MIPS64 rel2
>>16 leshort 0 no file type,
>>16 leshort 1 relocatable,
>>16 leshort 2 executable,
@@ -44,21 +51,24 @@
# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
>>16 leshort 4 core file
->>>(0x38+0xcc) string >\0 of '%s'
->>>(0x38+0x10) lelong >0 (signal %d),
+# Core file detection is not reliable.
+#>>>(0x38+0xcc) string >\0 of '%s'
+#>>>(0x38+0x10) lelong >0 (signal %d),
>>16 leshort &0xff00 processor-specific,
>>18 leshort 0 no machine,
>>18 leshort 1 AT&T WE32100 - invalid byte order,
>>18 leshort 2 SPARC - invalid byte order,
>>18 leshort 3 Intel 80386,
->>18 leshort 4 Motorola 68000 - invalid byte order,
+>>18 leshort 4 Motorola
+>>>36 lelong &0x01000000 68000 - invalid byte order,
+>>>36 lelong &0x00810000 CPU32 - invalid byte order,
+>>>36 lelong 0 68020 - invalid byte order,
>>18 leshort 5 Motorola 88000 - invalid byte order,
>>18 leshort 6 Intel 80486,
>>18 leshort 7 Intel 80860,
-# "officially" big endian, but binutils bfd only emits magic #8 for MIPS.
->>18 leshort 8 MIPS R3000_LE [bfd bug],
+>>18 leshort 8 MIPS,
>>18 leshort 9 Amdahl - invalid byte order,
->>18 leshort 10 MIPS R3000_LE,
+>>18 leshort 10 MIPS (deprecated),
>>18 leshort 11 RS6000 - invalid byte order,
>>18 leshort 15 PA-RISC - invalid byte order,
>>>50 leshort 0x0214 2.0
@@ -81,7 +91,7 @@
>>18 leshort 47 Hitachi H8/300H,
>>18 leshort 48 Hitachi H8S,
>>18 leshort 49 Hitachi H8/500,
->>18 leshort 50 IA-64 (Intel 64 bit architecture)
+>>18 leshort 50 IA-64,
>>18 leshort 51 Stanford MIPS-X,
>>18 leshort 52 Motorola Coldfire,
>>18 leshort 53 Motorola M68HC12,
@@ -91,44 +101,70 @@
>>20 lelong 0 invalid version
>>20 lelong 1 version 1
>>36 lelong 1 MathCoPro/FPU/MAU Required
+>8 string >\0 (%s)
+>8 string \0
+>>7 byte 0 (SYSV)
+>>7 byte 1 (HP-UX)
+>>7 byte 2 (NetBSD)
+>>7 byte 3 (GNU/Linux)
+>>7 byte 4 (GNU/Hurd)
+>>7 byte 5 (86Open)
+>>7 byte 6 (Solaris)
+>>7 byte 7 (Monterey)
+>>7 byte 8 (IRIX)
+>>7 byte 9 (FreeBSD)
+>>7 byte 10 (Tru64)
+>>7 byte 11 (Novell Modesto)
+>>7 byte 12 (OpenBSD)
+>>7 byte 97 (ARM)
+>>7 byte 255 (embedded)
>5 byte 2 MSB
-# only for MIPS R3000_BE
+# only for MIPS - see comment in little-endian section above.
>>18 beshort 8
# only for 32-bit
>>>4 byte 1
->>>>36 belong&0xf0000000 0x00000000 mips-1
->>>>36 belong&0xf0000000 0x10000000 mips-2
->>>>36 belong&0xf0000000 0x20000000 mips-3
->>>>36 belong&0xf0000000 0x30000000 mips-4
->>>>36 belong&0xf0000000 0x40000000 mips-5
->>>>36 belong&0xf0000000 0x50000000 mips-6
+>>>>36 belong&0xf0000000 0x00000000 MIPS-I
+>>>>36 belong&0xf0000000 0x10000000 MIPS-II
+>>>>36 belong&0xf0000000 0x20000000 MIPS-III
+>>>>36 belong&0xf0000000 0x30000000 MIPS-IV
+>>>>36 belong&0xf0000000 0x40000000 MIPS-V
+>>>>36 belong&0xf0000000 0x60000000 MIPS32
+>>>>36 belong&0xf0000000 0x70000000 MIPS64
+>>>>36 belong&0xf0000000 0x80000000 MIPS32 rel2
+>>>>36 belong&0xf0000000 0x90000000 MIPS64 rel2
# only for 64-bit
>>>4 byte 2
->>>>48 belong&0xf0000000 0x00000000 mips-1
->>>>48 belong&0xf0000000 0x10000000 mips-2
->>>>48 belong&0xf0000000 0x20000000 mips-3
->>>>48 belong&0xf0000000 0x30000000 mips-4
->>>>48 belong&0xf0000000 0x40000000 mips-5
->>>>48 belong&0xf0000000 0x50000000 mips-6
+>>>>48 belong&0xf0000000 0x00000000 MIPS-I
+>>>>48 belong&0xf0000000 0x10000000 MIPS-II
+>>>>48 belong&0xf0000000 0x20000000 MIPS-III
+>>>>48 belong&0xf0000000 0x30000000 MIPS-IV
+>>>>48 belong&0xf0000000 0x40000000 MIPS-V
+>>>>48 belong&0xf0000000 0x60000000 MIPS32
+>>>>48 belong&0xf0000000 0x70000000 MIPS64
+>>>>48 belong&0xf0000000 0x80000000 MIPS32 rel2
+>>>>48 belong&0xf0000000 0x90000000 MIPS64 rel2
>>16 beshort 0 no file type,
>>16 beshort 1 relocatable,
>>16 beshort 2 executable,
>>16 beshort 3 shared object,
>>16 beshort 4 core file,
->>>(0x38+0xcc) string >\0 of '%s'
->>>(0x38+0x10) belong >0 (signal %d),
+#>>>(0x38+0xcc) string >\0 of '%s'
+#>>>(0x38+0x10) belong >0 (signal %d),
>>16 beshort &0xff00 processor-specific,
>>18 beshort 0 no machine,
>>18 beshort 1 AT&T WE32100,
>>18 beshort 2 SPARC,
>>18 beshort 3 Intel 80386 - invalid byte order,
->>18 beshort 4 Motorola 68000,
+>>18 beshort 4 Motorola
+>>>36 belong &0x01000000 68000,
+>>>36 belong &0x00810000 CPU32,
+>>>36 belong 0 68020,
>>18 beshort 5 Motorola 88000,
>>18 beshort 6 Intel 80486 - invalid byte order,
>>18 beshort 7 Intel 80860,
->>18 beshort 8 MIPS R3000_BE,
+>>18 beshort 8 MIPS,
>>18 beshort 9 Amdahl,
->>18 beshort 10 MIPS R3000_LE - invalid byte order,
+>>18 beshort 10 MIPS (deprecated),
>>18 beshort 11 RS6000,
>>18 beshort 15 PA-RISC
>>>50 beshort 0x0214 2.0
@@ -158,7 +194,7 @@
>>18 beshort 47 Hitachi H8/300H,
>>18 beshort 48 Hitachi H8S,
>>18 beshort 49 Hitachi H8/500,
->>18 beshort 50 Intel Merced Processor,
+>>18 beshort 50 IA-64,
>>18 beshort 51 Stanford MIPS-X,
>>18 beshort 52 Motorola Coldfire,
>>18 beshort 53 Motorola M68HC12,
diff --git a/file/file.c b/file/file.c
index 590c048be..c1e1607bd 100644
--- a/file/file.c
+++ b/file/file.c
@@ -408,7 +408,8 @@ main(int argc, char **argv)
/*@switchbreak@*/ break;
case 'i':
iflag++;
- if ((mime = malloc(strlen(magicfile) + 6)) != NULL) {
+ mime = malloc(strlen(magicfile) + sizeof(".mime"));
+ if (mime != NULL) {
(void)strcpy(mime, magicfile);
(void)strcat(mime, ".mime");
magicfile = mime;
diff --git a/file/magic.mime b/file/magic.mime
index 836942a85..7bec3fd08 100644
--- a/file/magic.mime
+++ b/file/magic.mime
@@ -94,10 +94,9 @@
0 belong 0x2e7261fd application/x-realaudio
# MPEG Layer 3 sound files
-# Modified the 11/20/97 at 15:59:04 by Christophe Prud'homme <christophe.prudhomme@asci.fr>
-0 belong 0xfffb audio/x-mp3
+0 beshort &0xffe0 audio/mpeg
#MP3 with ID3 tag
-0 string ID3 audio/x-mp3
+0 string ID3 audio/mpeg
# Ogg/Vorbis
0 string OggS audio/x-ogg
@@ -487,6 +486,8 @@
0 string MOVI video/sgi
4 string moov video/quicktime moov
4 string mdat video/quicktime mdat
+# MNG
+0 string \x8aMNG video/x-mng
# The contributor claims:
# I couldn't find a real magic number for these, however, this
# -appears- to work. Note that it might catch other files, too,
@@ -541,3 +542,6 @@
#PNG Image Format
0 string \x89PNG image/png
+
+# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+0 string \x8aMNG video/x-mng
diff --git a/file/readelf.c b/file/readelf.c
index 23881dc15..4e0fb7464 100644
--- a/file/readelf.c
+++ b/file/readelf.c
@@ -550,7 +550,7 @@ tryelf(int fd, unsigned char *buf, int nbytes)
return;
- cls = buf[4];
+ cls = buf[EI_CLASS];
if (cls == ELFCLASS32) {
Elf32_Ehdr elfhdr;
@@ -560,7 +560,7 @@ tryelf(int fd, unsigned char *buf, int nbytes)
u.l = 1;
(void) memcpy(&elfhdr, buf, sizeof elfhdr);
- swap = (u.c[sizeof(int32_t) - 1] + 1) != elfhdr.e_ident[5];
+ swap = (u.c[sizeof(int32_t) - 1] + 1) != elfhdr.e_ident[EI_DATA];
if (getu16(swap, elfhdr.e_type) == ET_CORE)
#ifdef ELFCORE
@@ -597,7 +597,7 @@ tryelf(int fd, unsigned char *buf, int nbytes)
u.l = 1;
(void) memcpy(&elfhdr, buf, sizeof elfhdr);
- swap = (u.c[sizeof(int32_t) - 1] + 1) != elfhdr.e_ident[5];
+ swap = (u.c[sizeof(int32_t) - 1] + 1) != elfhdr.e_ident[EI_DATA];
if (getu16(swap, elfhdr.e_type) == ET_CORE)
#ifdef ELFCORE