From dad3d406049b1107e5e3af2f3d11861b66a42566 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 17:52:02 +0000 Subject: [PATCH] import UBI file-5.45-7.el10 --- .file.metadata | 1 - .gitignore | 2 +- SOURCES/file-5.33-CVE-2018-10360.patch | 28 - SOURCES/file-5.33-bound-file_strncmp.patch | 68 -- SOURCES/file-5.33-clamav.patch | 37 - SOURCES/file-5.33-covscan.patch | 31 - SOURCES/file-5.33-fix-compression.patch | 42 - .../file-5.33-floating-point-exception.patch | 77 -- SOURCES/file-5.33-gif.patch | 30 - SOURCES/file-5.33-more-python.patch | 22 - SOURCES/file-5.33-msooxml-magic.patch | 24 - SOURCES/file-5.33-other-languages.patch | 35 - SOURCES/file-5.33-pie-executable-revert.patch | 34 - SOURCES/file-5.33-ppc-swap.patch | 35 - SOURCES/file-5.33-python-space.patch | 23 - SOURCES/file-5.33-seccomp.patch | 53 -- SOURCES/file-5.33-static-PIE-binaries-0.patch | 236 ------ SOURCES/file-5.33-static-PIE-binaries-1.patch | 767 ------------------ SOURCES/file-5.33-static-PIE-binaries-2.patch | 68 -- SOURCES/file-5.33-static-PIE-binaries-3.patch | 36 - SOURCES/file-5.33-static-PIE-binaries-4.patch | 125 --- SOURCES/file-5.33-static-PIE-binaries-5.patch | 13 - SOURCES/file-5.33-thermocam-magic.patch | 49 -- SOURCES/file-5.33-whitespace-compare.patch | 14 - SOURCES/file-5.34-ebpf-magic.patch | 26 - SOURCES/file-5.35-man-apple.patch | 56 -- SOURCES/file-5.35-netpbm.patch | 67 -- SOURCES/file-5.35-ppc-core.patch | 62 -- SOURCES/file-5.37-CVE-2019-18218.patch | 52 -- SOURCES/file-5.37-jffs-magic.patch | 40 - SOURCES/file-5.41-python-magic-threads.patch | 77 -- SOURCES/file-magic-filesystems.patch | 13 - christoskey.asc | 79 ++ ...rpm-name.patch => file-4.17-rpm-name.patch | 0 ...me_key.patch => file-5.04-volume_key.patch | 0 file-5.45-readelf-limit-revert.patch | 103 +++ file-5.45-time-t.patch | 36 + file-5.45.tar.gz.asc | 6 + ...-localmagic.patch => file-localmagic.patch | 39 +- SPECS/file.spec => file.spec | 420 ++++++---- sources | 1 + 41 files changed, 508 insertions(+), 2419 deletions(-) delete mode 100644 .file.metadata delete mode 100644 SOURCES/file-5.33-CVE-2018-10360.patch delete mode 100644 SOURCES/file-5.33-bound-file_strncmp.patch delete mode 100644 SOURCES/file-5.33-clamav.patch delete mode 100644 SOURCES/file-5.33-covscan.patch delete mode 100644 SOURCES/file-5.33-fix-compression.patch delete mode 100644 SOURCES/file-5.33-floating-point-exception.patch delete mode 100644 SOURCES/file-5.33-gif.patch delete mode 100644 SOURCES/file-5.33-more-python.patch delete mode 100644 SOURCES/file-5.33-msooxml-magic.patch delete mode 100644 SOURCES/file-5.33-other-languages.patch delete mode 100644 SOURCES/file-5.33-pie-executable-revert.patch delete mode 100644 SOURCES/file-5.33-ppc-swap.patch delete mode 100644 SOURCES/file-5.33-python-space.patch delete mode 100644 SOURCES/file-5.33-seccomp.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-0.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-1.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-2.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-3.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-4.patch delete mode 100644 SOURCES/file-5.33-static-PIE-binaries-5.patch delete mode 100644 SOURCES/file-5.33-thermocam-magic.patch delete mode 100644 SOURCES/file-5.33-whitespace-compare.patch delete mode 100644 SOURCES/file-5.34-ebpf-magic.patch delete mode 100644 SOURCES/file-5.35-man-apple.patch delete mode 100644 SOURCES/file-5.35-netpbm.patch delete mode 100644 SOURCES/file-5.35-ppc-core.patch delete mode 100644 SOURCES/file-5.37-CVE-2019-18218.patch delete mode 100644 SOURCES/file-5.37-jffs-magic.patch delete mode 100644 SOURCES/file-5.41-python-magic-threads.patch delete mode 100644 SOURCES/file-magic-filesystems.patch create mode 100644 christoskey.asc rename SOURCES/file-4.17-rpm-name.patch => file-4.17-rpm-name.patch (100%) rename SOURCES/file-5.04-volume_key.patch => file-5.04-volume_key.patch (100%) create mode 100644 file-5.45-readelf-limit-revert.patch create mode 100644 file-5.45-time-t.patch create mode 100644 file-5.45.tar.gz.asc rename SOURCES/file-localmagic.patch => file-localmagic.patch (62%) rename SPECS/file.spec => file.spec (77%) create mode 100644 sources diff --git a/.file.metadata b/.file.metadata deleted file mode 100644 index 7cbe049..0000000 --- a/.file.metadata +++ /dev/null @@ -1 +0,0 @@ -31a67e4dc0a3d7a8d1b850429c3f625314700240 SOURCES/file-5.33.tar.gz diff --git a/.gitignore b/.gitignore index cbb9ab4..a5b4e6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/file-5.33.tar.gz +file-5.45.tar.gz diff --git a/SOURCES/file-5.33-CVE-2018-10360.patch b/SOURCES/file-5.33-CVE-2018-10360.patch deleted file mode 100644 index 0b4e96b..0000000 --- a/SOURCES/file-5.33-CVE-2018-10360.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8616080aecf07436e80a27f68c336382c1d1c22d Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Sat, 9 Jun 2018 16:00:06 +0000 -Subject: [PATCH] Avoid reading past the end of buffer (Rui Reis) - -Upstream-commit: a642587a9c9e2dd7feacdf513c3643ce26ad3c22 -Signed-off-by: Kamil Dudka ---- - src/readelf.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 3df0836..d96a538 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -825,7 +825,8 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - - cname = (unsigned char *) - &nbuf[doff + prpsoffsets(i)]; -- for (cp = cname; *cp && isprint(*cp); cp++) -+ for (cp = cname; cp < nbuf + size && *cp -+ && isprint(*cp); cp++) - continue; - /* - * Linux apparently appends a space at the end --- -2.14.4 - diff --git a/SOURCES/file-5.33-bound-file_strncmp.patch b/SOURCES/file-5.33-bound-file_strncmp.patch deleted file mode 100644 index d8ac1a0..0000000 --- a/SOURCES/file-5.33-bound-file_strncmp.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff -urp file-5.33.orig/src/softmagic.c file-5.33/src/softmagic.c ---- file-5.33.orig/src/softmagic.c 2020-12-14 12:26:50.286849841 -0500 -+++ file-5.33/src/softmagic.c 2020-12-14 12:35:52.679166211 -0500 -@@ -1748,7 +1748,8 @@ mget(struct magic_set *ms, struct magic - } - - private uint64_t --file_strncmp(const char *s1, const char *s2, size_t len, uint32_t flags) -+file_strncmp(const char *s1, const char *s2, size_t len, size_t maxlen, -+ uint32_t flags) - { - /* - * Convert the source args to unsigned here so that (1) the -@@ -1760,7 +1761,7 @@ file_strncmp(const char *s1, const char - const unsigned char *b = (const unsigned char *)s2; - uint32_t ws = flags & (STRING_COMPACT_WHITESPACE | - STRING_COMPACT_OPTIONAL_WHITESPACE); -- const unsigned char *eb = b + (ws ? strlen(s2) : len); -+ const unsigned char *eb = b + (ws ? maxlen : len); - uint64_t v; - - /* -@@ -1818,7 +1819,8 @@ file_strncmp(const char *s1, const char - } - - private uint64_t --file_strncmp16(const char *a, const char *b, size_t len, uint32_t flags) -+file_strncmp16(const char *a, const char *b, size_t len, size_t maxlen, -+ uint32_t flags) - { - /* - * XXX - The 16-bit string compare probably needs to be done -@@ -1826,7 +1828,7 @@ file_strncmp16(const char *a, const char - * At the moment, I am unsure. - */ - flags = 0; -- return file_strncmp(a, b, len, flags); -+ return file_strncmp(a, b, len, maxlen, flags); - } - - private int -@@ -1954,13 +1956,15 @@ magiccheck(struct magic_set *ms, struct - case FILE_STRING: - case FILE_PSTRING: - l = 0; -- v = file_strncmp(m->value.s, p->s, (size_t)m->vallen, m->str_flags); -+ v = file_strncmp(m->value.s, p->s, (size_t)m->vallen, -+ sizeof(p->s), m->str_flags); - break; - - case FILE_BESTRING16: - case FILE_LESTRING16: - l = 0; -- v = file_strncmp16(m->value.s, p->s, (size_t)m->vallen, m->str_flags); -+ v = file_strncmp16(m->value.s, p->s, (size_t)m->vallen, -+ sizeof(p->s), m->str_flags); - break; - - case FILE_SEARCH: { /* search ms->search.s for the string m->value.s */ -@@ -1979,7 +1983,7 @@ magiccheck(struct magic_set *ms, struct - return 0; - - v = file_strncmp(m->value.s, ms->search.s + idx, slen, -- m->str_flags); -+ ms->search.s_len - idx, m->str_flags); - if (v == 0) { /* found match */ - ms->search.offset += idx; - ms->search.rm_len = ms->search.s_len - idx; diff --git a/SOURCES/file-5.33-clamav.patch b/SOURCES/file-5.33-clamav.patch deleted file mode 100644 index 5cd905c..0000000 --- a/SOURCES/file-5.33-clamav.patch +++ /dev/null @@ -1,37 +0,0 @@ -From fb1604080767501fde17eb601382e84f1c1ddca3 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 16 Jul 2018 12:30:41 +0000 -Subject: [PATCH] remember to put a space between the version and the number, - plus more version parsing (Kamil Dudka) - -Upstream-commit: 1a7f58c9f253e3b902bfb7a77afd8375b0b428b7 -Signed-off-by: Kamil Dudka ---- - magic/Magdir/fsav | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/magic/Magdir/fsav b/magic/Magdir/fsav -index 5714798..5d72ab9 100644 ---- a/magic/Magdir/fsav -+++ b/magic/Magdir/fsav -@@ -48,13 +48,15 @@ - >11 string >\0 Clam AntiVirus database %-.23s - >>34 string : - >>>35 string !: \b, version -->>>>35 string x \b%-.1s -->>>>>36 string !: -+>>>>35 string x \b %-.1s -+>>>>>36 string !: - >>>>>>36 string x \b%-.1s - >>>>>>>37 string !: - >>>>>>>>37 string x \b%-.1s - >>>>>>>>>38 string !: - >>>>>>>>>>38 string x \b%-.1s -+>>>>>>>>>>>39 string !: -+>>>>>>>>>>>>39 string x \b%-.1s - >512 string \037\213 \b, gzipped - >769 string ustar\0 \b, tarred - --- -2.14.4 - diff --git a/SOURCES/file-5.33-covscan.patch b/SOURCES/file-5.33-covscan.patch deleted file mode 100644 index ceedce1..0000000 --- a/SOURCES/file-5.33-covscan.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7bd1d499157caa391082f594d197f49f5327bd56 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Wed, 1 Aug 2018 09:59:45 +0000 -Subject: [PATCH] fix leak on error, found by coverity. - -Upstream-commit: e0805be4909e47dac47bab9d0caf3725da43e645 -Signed-off-by: Kamil Dudka ---- - src/compress.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/compress.c b/src/compress.c -index 184011b..cb11303 100644 ---- a/src/compress.c -+++ b/src/compress.c -@@ -249,8 +249,11 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name) - * XXX: If file_buffer fails here, we overwrite - * the compressed text. FIXME. - */ -- if (file_buffer(ms, -1, NULL, buf, nbytes) == -1) -+ if (file_buffer(ms, -1, NULL, buf, nbytes) == -1) { -+ if (file_pop_buffer(ms, pb) != NULL) -+ abort(); - goto error; -+ } - if ((rbuf = file_pop_buffer(ms, pb)) != NULL) { - if (file_printf(ms, "%s", rbuf) == -1) { - free(rbuf); --- -2.17.2 - diff --git a/SOURCES/file-5.33-fix-compression.patch b/SOURCES/file-5.33-fix-compression.patch deleted file mode 100644 index adbd7c5..0000000 --- a/SOURCES/file-5.33-fix-compression.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/src/compress.c b/src/compress.c -index cb11303..5677412 100644 ---- a/src/compress.c -+++ b/src/compress.c -@@ -723,25 +723,24 @@ uncompressbuf(int fd, size_t bytes_max, size_t method, const unsigned char *old, - rv = OKDATA; - if ((r = sread(fdp[STDOUT_FILENO][0], *newch, bytes_max, 0)) > 0) - break; -- DPRINTF("Read stdout failed %d (%s)\n", fdp[STDOUT_FILENO][0], -- r != -1 ? strerror(errno) : "no data"); -- -- rv = ERRDATA; -- if (r == 0 && -- (r = sread(fdp[STDERR_FILENO][0], *newch, bytes_max, 0)) > 0) -- { -+ if (r < 0) { -+ rv = ERRDATA; -+ DPRINTF("Read stdout failed %d (%s)\n", fdp[STDOUT_FILENO][0], -+ strerror(errno)); -+ goto err; -+ } else if ((r = sread(fdp[STDERR_FILENO][0], *newch, bytes_max, 0)) > 0){ -+ rv = ERRDATA; - r = filter_error(*newch, r); - break; - } -- free(*newch); - if (r == 0) -- rv = makeerror(newch, n, "Read failed, %s", -- strerror(errno)); -- else -- rv = makeerror(newch, n, "No data"); -+ break; -+ free(*newch); -+ rv = ERRDATA; -+ rv = makeerror(newch, n, "Read stderr failed, %s", -+ strerror(errno)); - goto err; - } -- - *n = r; - /* NUL terminate, as every buffer is handled here. */ - (*newch)[*n] = '\0'; diff --git a/SOURCES/file-5.33-floating-point-exception.patch b/SOURCES/file-5.33-floating-point-exception.patch deleted file mode 100644 index 32415b4..0000000 --- a/SOURCES/file-5.33-floating-point-exception.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff --git a/src/Makefile.am b/src/Makefile.am -index a9b245d..c7f184d 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -17,10 +17,10 @@ MINGWLIBS = -lgnurx -lshlwapi - else - MINGWLIBS = - endif --libmagic_la_LIBADD = $(LTLIBOBJS) $(MINGWLIBS) -+libmagic_la_LIBADD = -lm $(LTLIBOBJS) $(MINGWLIBS) - - file_SOURCES = file.c seccomp.c --file_LDADD = libmagic.la -+file_LDADD = libmagic.la -lm - CLEANFILES = magic.h - EXTRA_DIST = magic.h.in - HDR= $(top_srcdir)/src/magic.h.in -diff --git a/src/softmagic.c b/src/softmagic.c -index 3e76517..57b4677 100644 ---- a/src/softmagic.c -+++ b/src/softmagic.c -@@ -37,6 +37,7 @@ FILE_RCSID("@(#)$File: softmagic.c,v 1.259 2018/03/11 01:23:52 christos Exp $") - - #include "magic.h" - #include -+#include - #include - #include - #include -@@ -1893,19 +1894,19 @@ magiccheck(struct magic_set *ms, struct magic *m) - break; - - case '!': -- matched = fv != fl; -+ matched = isunordered(fl, fv) ? 1 : fv != fl; - break; - - case '=': -- matched = fv == fl; -+ matched = isunordered(fl, fv) ? 0 : fv == fl; - break; - - case '>': -- matched = fv > fl; -+ matched = isgreater(fv, fl); - break; - - case '<': -- matched = fv < fl; -+ matched = isless(fv, fl); - break; - - default: -@@ -1926,19 +1927,19 @@ magiccheck(struct magic_set *ms, struct magic *m) - break; - - case '!': -- matched = dv != dl; -+ matched = isunordered(dv, dl) ? 1 : dv != dl; - break; - - case '=': -- matched = dv == dl; -+ matched = isunordered(dv, dl) ? 0 : dv == dl; - break; - - case '>': -- matched = dv > dl; -+ matched = isgreater(dv, dl); - break; - - case '<': -- matched = dv < dl; -+ matched = isless(dv, dl); - break; - - default: diff --git a/SOURCES/file-5.33-gif.patch b/SOURCES/file-5.33-gif.patch deleted file mode 100644 index 646ea32..0000000 --- a/SOURCES/file-5.33-gif.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f0e846528e1c839ab44895a1f13d167a4ad8def3 Mon Sep 17 00:00:00 2001 -From: Marek Cermak -Date: Wed, 20 Dec 2017 16:18:46 +0100 -Subject: [PATCH] Resolves: #1515180 - image/gif classifed as - application/octet-stream - -https://bugzilla.redhat.com/show_bug.cgi?id=1515180 - -Signed-off-by: Marek Cermak ---- - magic/Magdir/images | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/magic/Magdir/images b/magic/Magdir/images -index 69e8e90f..76f7e7da 100644 ---- a/magic/Magdir/images -+++ b/magic/Magdir/images -@@ -468,7 +468,9 @@ - !:mime image/x-unknown - - # GIF -+# Strength set up to beat 0x55AA DOS/MBR signature word lookups (+65) - 0 string GIF8 GIF image data -+!:strength +80 - !:mime image/gif - !:apple 8BIMGIFf - >4 string 7a \b, version 8%s, --- -2.13.6 - diff --git a/SOURCES/file-5.33-more-python.patch b/SOURCES/file-5.33-more-python.patch deleted file mode 100644 index 1e8fc1e..0000000 --- a/SOURCES/file-5.33-more-python.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urp file-5.33.orig/magic/Magdir/python file-5.33/magic/Magdir/python ---- file-5.33.orig/magic/Magdir/python 2020-12-17 13:19:08.610803723 -0500 -+++ file-5.33/magic/Magdir/python 2020-12-17 13:26:07.346954161 -0500 -@@ -43,6 +43,18 @@ - !:strength + 15 - !:mime text/x-python - -+0 search/1/wt #!\ /usr/libexec/platform-python Python script text executable -+!:strength + 15 -+!:mime text/x-python -+ -+0 search/1/wt #!\ /usr/bin/python2 Python script text executable -+!:strength + 15 -+!:mime text/x-python -+ -+0 search/1/wt #!\ /usr/bin/python3 Python script text executable -+!:strength + 15 -+!:mime text/x-python -+ - - # from module.submodule import func1, func2 - 0 regex \^from[\040\t\f\r\n]+([A-Za-z0-9_]|\\.)+[\040\t\f\r\n]+import.*$ Python script text executable diff --git a/SOURCES/file-5.33-msooxml-magic.patch b/SOURCES/file-5.33-msooxml-magic.patch deleted file mode 100644 index fb3cb86..0000000 --- a/SOURCES/file-5.33-msooxml-magic.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/magic/Magdir/msooxml b/magic/Magdir/msooxml -index bde098e..7d0bcc7 100644 ---- a/magic/Magdir/msooxml -+++ b/magic/Magdir/msooxml -@@ -28,16 +28,16 @@ - # skip to the second local file header - # since some documents include a 520-byte extra field following the file - # header, we need to scan for the next header -->>(18.l+49) search/2000 PK\003\004 -+>>(18.l+49) search/6000 PK\003\004 - # now skip to the *third* local file header; again, we need to scan due to a - # 520-byte extra field following the file header -->>>&26 search/1000 PK\003\004 -+>>>&26 search/6000 PK\003\004 - # and check the subdirectory name to determine which type of OOXML - # file we have. Correct the mimetype with the registered ones: - # http://technet.microsoft.com/en-us/library/cc179224.aspx - >>>>&26 use msooxml - >>>>&26 default x - # OpenOffice/Libreoffice orders ZIP entry differently, so check the 4th file -->>>>>&26 search/1000 PK\003\004 -+>>>>>&26 search/6000 PK\003\004 - >>>>>>&26 use msooxml - >>>>>>&26 default x Microsoft OOXML diff --git a/SOURCES/file-5.33-other-languages.patch b/SOURCES/file-5.33-other-languages.patch deleted file mode 100644 index 9b6c918..0000000 --- a/SOURCES/file-5.33-other-languages.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -urp file-5.33.orig/magic/Magdir/commands file-5.33/magic/Magdir/commands ---- file-5.33.orig/magic/Magdir/commands 2017-08-14 03:40:38.000000000 -0400 -+++ file-5.33/magic/Magdir/commands 2020-12-17 13:30:07.063162185 -0500 -@@ -8,6 +8,8 @@ - !:mime text/x-shellscript - 0 string/wb #!\ /bin/sh POSIX shell script executable (binary data) - !:mime text/x-shellscript -+0 string/w #!\ /usr/bin/sh Shell script text executable -+!:mime text/x-shellscript - - 0 string/wt #!\ /bin/csh C shell script text executable - !:mime text/x-shellscript -diff -urp file-5.33.orig/magic/Magdir/javascript file-5.33/magic/Magdir/javascript ---- file-5.33.orig/magic/Magdir/javascript 2012-06-16 09:30:36.000000000 -0400 -+++ file-5.33/magic/Magdir/javascript 2020-12-17 13:36:56.276843745 -0500 -@@ -15,3 +15,5 @@ - !:mime application/javascript - 0 search/1 #!/usr/bin/env\ nodejs Node.js script text executable - !:mime application/javascript -+0 string/wt #!\ /usr/bin/gjs Gnome Javascript text executable -+!:mime text/javascript -diff -urp file-5.33.orig/magic/Magdir/tcl file-5.33/magic/Magdir/tcl ---- file-5.33.orig/magic/Magdir/tcl 2014-01-08 17:29:21.000000000 -0500 -+++ file-5.33/magic/Magdir/tcl 2020-12-17 13:36:20.855391803 -0500 -@@ -12,6 +12,10 @@ - !:mime text/x-tcl - 0 search/1 #!\ /usr/bin/env\ tcl Tcl script text executable - !:mime text/x-tcl -+0 string/wt #!\ /usr/bin/jimsh Jim TCL text executable -+!:mime text/x-tcl -+0 search/1/wt #!\ /usr/bin/tclsh Tcl/Tk script text executable -+!:mime text/x-tcl - 0 search/1/w #!\ /usr/bin/wish Tcl/Tk script text executable - !:mime text/x-tcl - 0 search/1/w #!\ /usr/local/bin/wish Tcl/Tk script text executable diff --git a/SOURCES/file-5.33-pie-executable-revert.patch b/SOURCES/file-5.33-pie-executable-revert.patch deleted file mode 100644 index 66a241c..0000000 --- a/SOURCES/file-5.33-pie-executable-revert.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 719116b196fd873f5a463dfdb0fd6258cee51591 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 22 May 2018 18:18:06 +0200 -Subject: [PATCH] Revert "add a conditional in description" - -Upstream-commit: 6876ebadcdf27224b3ffa9dfa4343127aa97c9b2 - -... and partially revert upstream commit -7dbecfe406a6bb2de1fe7ec2fe413dcd8871ac74 - -Signed-off-by: Kamil Dudka ---- - magic/Magdir/elf | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/magic/Magdir/elf b/magic/Magdir/elf -index 7fd5de1..dba5a73 100644 ---- a/magic/Magdir/elf -+++ b/magic/Magdir/elf -@@ -48,9 +48,8 @@ - !:mime application/x-object - >16 leshort 2 executable, - !:mime application/x-executable -->16 leshort 3 ${x?pie executable:shared object} -- --!:mime application/x-${x?pie-executable:sharedlib} -+>16 leshort 3 shared object, -+!:mime application/x-sharedlib - >16 leshort 4 core file - !:mime application/x-coredump - # Core file detection is not reliable. --- -2.14.3 - diff --git a/SOURCES/file-5.33-ppc-swap.patch b/SOURCES/file-5.33-ppc-swap.patch deleted file mode 100644 index 3cf3ece..0000000 --- a/SOURCES/file-5.33-ppc-swap.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ed6062995ae60d6772f2dabc39e03cbf28ee7343 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 16 Jul 2018 12:32:08 +0000 -Subject: [PATCH] more info for ppc swapspace (Kamil Dudka) - -Upstream-commit: 65f9c7053548df8945df600c07123c9151531ee6 -Signed-off-by: Kamil Dudka ---- - magic/Magdir/linux | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/magic/Magdir/linux b/magic/Magdir/linux -index 0630a8a..11e9237 100644 ---- a/magic/Magdir/linux -+++ b/magic/Magdir/linux -@@ -94,6 +94,16 @@ - # From Daniel Novotny - # swap file for PowerPC - 65526 string SWAPSPACE2 Linux/ppc swap file -+>0x400 long x version %d, -+>0x404 long x size %d pages, -+>1052 string \0 no label, -+>1052 string >\0 LABEL=%s, -+>0x40c belong x UUID=%08x -+>0x410 beshort x \b-%04x -+>0x412 beshort x \b-%04x -+>0x414 beshort x \b-%04x -+>0x416 belong x \b-%08x -+>0x41a beshort x \b%04x - 16374 string SWAPSPACE2 Linux/ia64 swap file - # - # Linux kernel boot images, from Albert Cahalan --- -2.14.4 - diff --git a/SOURCES/file-5.33-python-space.patch b/SOURCES/file-5.33-python-space.patch deleted file mode 100644 index 053ed10..0000000 --- a/SOURCES/file-5.33-python-space.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -urp file-5.33.orig/magic/Magdir/python file-5.33/magic/Magdir/python ---- file-5.33.orig/magic/Magdir/python 2017-08-14 03:40:38.000000000 -0400 -+++ file-5.33/magic/Magdir/python 2020-12-14 12:24:42.084905613 -0500 -@@ -30,16 +30,16 @@ - 0 belong 0x3e0d0d0a python 3.7 byte-compiled - - --0 search/1/w #!\ /usr/bin/python Python script text executable -+0 search/1/w #!\040/usr/bin/python Python script text executable - !:strength + 15 - !:mime text/x-python --0 search/1/w #!\ /usr/local/bin/python Python script text executable -+0 search/1/w #!\040/usr/local/bin/python Python script text executable - !:strength + 15 - !:mime text/x-python - 0 search/1 #!/usr/bin/env\ python Python script text executable - !:strength + 15 - !:mime text/x-python --0 search/10 #!\ /usr/bin/env\ python Python script text executable -+0 search/10 #!\040/usr/bin/env\ python Python script text executable - !:strength + 15 - !:mime text/x-python - diff --git a/SOURCES/file-5.33-seccomp.patch b/SOURCES/file-5.33-seccomp.patch deleted file mode 100644 index 89e425f..0000000 --- a/SOURCES/file-5.33-seccomp.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 4ae8a24b5ccbee904875a10b7b2301369080a88d Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Sun, 6 May 2018 16:36:41 +0000 -Subject: [PATCH] add more syscalls; newfstatat is used for stat'ing the magic - file, getdents64 is used for getting the magic entries during compilation. - -Upstream-commit: aeddbff330fad0edff2ab4b02dbf0863cd593c3c -Signed-off-by: Kamil Dudka ---- - src/seccomp.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/src/seccomp.c b/src/seccomp.c -index 7c8a3144..481a5624 100644 ---- a/src/seccomp.c -+++ b/src/seccomp.c -@@ -59,12 +59,7 @@ enable_sandbox_basic(void) - if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == -1) - return -1; - --#if 0 -- // prevent escape via ptrace -- prctl(PR_SET_DUMPABLE, 0); --#endif -- -- if (prctl (PR_SET_DUMPABLE, 0, 0, 0, 0) == -1) -+ if (prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) == -1) - return -1; - - // initialize the filter -@@ -171,6 +166,9 @@ enable_sandbox_full(void) - ALLOW_RULE(fcntl); - ALLOW_RULE(fstat); - ALLOW_RULE(getdents); -+#ifdef __NR_getdents64 -+ ALLOW_RULE(getdents64); -+#endif - ALLOW_RULE(ioctl); - ALLOW_RULE(lseek); - ALLOW_RULE(lstat); -@@ -178,6 +176,9 @@ enable_sandbox_full(void) - ALLOW_RULE(mprotect); - ALLOW_RULE(mremap); - ALLOW_RULE(munmap); -+#ifdef __NR_newfstatat -+ ALLOW_RULE(newfstatat); -+#endif - ALLOW_RULE(open); - ALLOW_RULE(openat); - ALLOW_RULE(pread64); --- -2.17.0 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-0.patch b/SOURCES/file-5.33-static-PIE-binaries-0.patch deleted file mode 100644 index 1031626..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-0.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 3951ed6ab1ba4b7d6d4d2dd5700858c470627c46 Mon Sep 17 00:00:00 2001 -From: Vincent Mihalkovic -Date: Thu, 9 Feb 2023 16:46:43 +0100 -Subject: [PATCH] store copy of the mode info in the magic_set - ---- - src/file.h | 1 + - src/funcs.c | 53 +++++++++++++++++++++++++++++++------------------ - src/softmagic.c | 27 +++++++++++-------------- - 3 files changed, 47 insertions(+), 34 deletions(-) - -diff --git a/src/file.h b/src/file.h -index 66598bc..b3d015d 100644 ---- a/src/file.h -+++ b/src/file.h -@@ -413,6 +413,7 @@ struct magic_set { - #define EVENT_HAD_ERR 0x01 - const char *file; - size_t line; /* current magic line number */ -+ mode_t mode; /* copy of current stat mode */ - - /* data for searches */ - struct { -diff --git a/src/funcs.c b/src/funcs.c -index f59f4a1..0bf92fe 100644 ---- a/src/funcs.c -+++ b/src/funcs.c -@@ -27,7 +27,7 @@ - #include "file.h" - - #ifndef lint --FILE_RCSID("@(#)$File: funcs.c,v 1.94 2017/11/02 20:25:39 christos Exp $") -+FILE_RCSID("@(#)$File: funcs.c,v 1.95 2018/05/24 18:09:17 christos Exp $") - #endif /* lint */ - - #include "magic.h" -@@ -183,9 +183,11 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u - const char *type = "application/octet-stream"; - const char *def = "data"; - const char *ftype = NULL; -+ char *rbuf = NULL; - struct buffer b; - - buffer_init(&b, fd, buf, nb); -+ ms->mode = b.st.st_mode; - - if (nb == 0) { - def = "empty"; -@@ -248,31 +250,43 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u - goto done; - } - } -+#ifdef BUILTIN_ELF -+ if ((ms->flags & MAGIC_NO_CHECK_ELF) == 0 && nb > 5 && fd != -1) { -+ file_pushbuf_t *pb; -+ /* -+ * We matched something in the file, so this -+ * *might* be an ELF file, and the file is at -+ * least 5 bytes long, so if it's an ELF file -+ * it has at least one byte past the ELF magic -+ * number - try extracting information from the -+ * ELF headers that cannot easily be extracted -+ * with rules in the magic file. We we don't -+ * print the information yet. -+ */ -+ if ((pb = file_push_buffer(ms)) == NULL) -+ return -1; -+ -+ rv = file_tryelf(ms, &b); -+ rbuf = file_pop_buffer(ms, pb); -+ if (rv != 1) { -+ free(rbuf); -+ rbuf = NULL; -+ } -+ if ((ms->flags & MAGIC_DEBUG) != 0) -+ (void)fprintf(stderr, "[try elf %d]\n", m); -+ } -+#endif - - /* try soft magic tests */ - if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0) { - m = file_softmagic(ms, &b, NULL, NULL, BINTEST, looks_text); - if ((ms->flags & MAGIC_DEBUG) != 0) - (void)fprintf(stderr, "[try softmagic %d]\n", m); -+ if (m == 1 && rbuf) { -+ if (file_printf(ms, "%s", rbuf) == -1) -+ goto done; -+ } - if (m) { --#ifdef BUILTIN_ELF -- if ((ms->flags & MAGIC_NO_CHECK_ELF) == 0 && m == 1 && -- nb > 5 && fd != -1) { -- /* -- * We matched something in the file, so this -- * *might* be an ELF file, and the file is at -- * least 5 bytes long, so if it's an ELF file -- * it has at least one byte past the ELF magic -- * number - try extracting information from the -- * ELF headers that cannot easily * be -- * extracted with rules in the magic file. -- */ -- m = file_tryelf(ms, &b); -- if ((ms->flags & MAGIC_DEBUG) != 0) -- (void)fprintf(stderr, "[try elf %d]\n", -- m); -- } --#endif - if (checkdone(ms, &rv)) - goto done; - } -@@ -318,6 +332,7 @@ simple: - #if HAVE_FORK - done_encoding: - #endif -+ free(rbuf); - buffer_fini(&b); - if (rv) - return rv; -diff --git a/src/softmagic.c b/src/softmagic.c -index 57b4677..0197ec4 100644 ---- a/src/softmagic.c -+++ b/src/softmagic.c -@@ -54,8 +54,7 @@ private int mget(struct magic_set *, struct magic *, const struct buffer *, - private int msetoffset(struct magic_set *, struct magic *, struct buffer *, - const struct buffer *, size_t, unsigned int); - private int magiccheck(struct magic_set *, struct magic *); --private int32_t mprint(struct magic_set *, struct magic *, -- const struct buffer *); -+private int32_t mprint(struct magic_set *, struct magic *); - private int moffset(struct magic_set *, struct magic *, const struct buffer *, - int32_t *); - private void mdebug(uint32_t, const char *, size_t); -@@ -63,8 +62,7 @@ private int mcopy(struct magic_set *, union VALUETYPE *, int, int, - const unsigned char *, uint32_t, size_t, struct magic *); - private int mconvert(struct magic_set *, struct magic *, int); - private int print_sep(struct magic_set *, int); --private int handle_annotation(struct magic_set *, struct magic *, -- const struct buffer *, int); -+private int handle_annotation(struct magic_set *, struct magic *, int); - private int cvt_8(union VALUETYPE *, const struct magic *); - private int cvt_16(union VALUETYPE *, const struct magic *); - private int cvt_32(union VALUETYPE *, const struct magic *); -@@ -241,7 +239,7 @@ flush: - goto flush; - } - -- if ((e = handle_annotation(ms, m, b, firstline)) != 0) { -+ if ((e = handle_annotation(ms, m, firstline)) != 0) { - *need_separator = 1; - *printed_something = 1; - *returnval = 1; -@@ -259,7 +257,7 @@ flush: - return -1; - } - -- if (print && mprint(ms, m, b) == -1) -+ if (print && mprint(ms, m) == -1) - return -1; - - switch (moffset(ms, m, &bb, &ms->c.li[cont_level].off)) { -@@ -340,7 +338,7 @@ flush: - } else - ms->c.li[cont_level].got_match = 1; - -- if ((e = handle_annotation(ms, m, b, firstline)) -+ if ((e = handle_annotation(ms, m, firstline)) - != 0) { - *need_separator = 1; - *printed_something = 1; -@@ -374,7 +372,7 @@ flush: - return -1; - *need_separator = 0; - } -- if (print && mprint(ms, m, b) == -1) -+ if (print && mprint(ms, m) == -1) - return -1; - - switch (moffset(ms, m, &bb, -@@ -454,7 +452,7 @@ strndup(const char *str, size_t n) - #endif /* HAVE_STRNDUP */ - - static int --varexpand(char *buf, size_t len, const struct buffer *b, const char *str) -+varexpand(struct magic_set *ms, char *buf, size_t len, const char *str) - { - const char *ptr, *sptr, *e, *t, *ee, *et; - size_t l; -@@ -479,7 +477,7 @@ varexpand(char *buf, size_t len, const struct buffer *b, const char *str) - return -1; - switch (*ptr) { - case 'x': -- if (b->st.st_mode & 0111) { -+ if (ms->mode & 0111) { - ptr = t; - l = et - t; - } else { -@@ -509,7 +507,7 @@ varexpand(char *buf, size_t len, const struct buffer *b, const char *str) - - - private int32_t --mprint(struct magic_set *ms, struct magic *m, const struct buffer *b) -+mprint(struct magic_set *ms, struct magic *m) - { - uint64_t v; - float vf; -@@ -519,7 +517,7 @@ mprint(struct magic_set *ms, struct magic *m, const struct buffer *b) - const char *desc; - union VALUETYPE *p = &ms->ms_value; - -- if (varexpand(ebuf, sizeof(ebuf), b, m->desc) == -1) -+ if (varexpand(ms, ebuf, sizeof(ebuf), m->desc) == -1) - desc = m->desc; - else - desc = ebuf; -@@ -2166,8 +2164,7 @@ magiccheck(struct magic_set *ms, struct magic *m) - } - - private int --handle_annotation(struct magic_set *ms, struct magic *m, const struct buffer *b, -- int firstline) -+handle_annotation(struct magic_set *ms, struct magic *m, int firstline) - { - if ((ms->flags & MAGIC_APPLE) && m->apple[0]) { - if (!firstline && file_printf(ms, "\n- ") == -1) -@@ -2188,7 +2185,7 @@ handle_annotation(struct magic_set *ms, struct magic *m, const struct buffer *b, - const char *p; - if (!firstline && file_printf(ms, "\n- ") == -1) - return -1; -- if (varexpand(buf, sizeof(buf), b, m->mimetype) == -1) -+ if (varexpand(ms, buf, sizeof(buf), m->mimetype) == -1) - p = m->mimetype; - else - p = buf; --- -2.39.1 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-1.patch b/SOURCES/file-5.33-static-PIE-binaries-1.patch deleted file mode 100644 index 35a6e97..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-1.patch +++ /dev/null @@ -1,767 +0,0 @@ -From 493e2676626b530a45fcc17040915f34fa0c5dd3 Mon Sep 17 00:00:00 2001 -From: Vincent Mihalkovic -Date: Mon, 6 Feb 2023 14:39:29 +0100 -Subject: [PATCH] add parsing for dynamic sections - -9109a696f3289ba00eaa222fd432755ec4287e28 ---- - src/readelf.c | 295 +++++++++++++++++++++++++++++++------------------- - src/readelf.h | 103 ++++++++++++++++++ - 2 files changed, 289 insertions(+), 109 deletions(-) - -diff --git a/src/readelf.c b/src/readelf.c -index c101483..cdc211f 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -62,13 +62,12 @@ private uint64_t getu64(int, uint64_t); - - #define MAX_PHNUM 128 - #define MAX_SHNUM 32768 --#define SIZE_UNKNOWN ((off_t)-1) -+#define SIZE_UNKNOWN CAST(off_t, -1) - - private int - toomany(struct magic_set *ms, const char *name, uint16_t num) - { -- if (file_printf(ms, ", too many %s (%u)", name, num -- ) == -1) -+ if (file_printf(ms, ", too many %s (%u)", name, num) == -1) - return -1; - return 0; - } -@@ -143,54 +142,55 @@ getu64(int swap, uint64_t value) - #define elf_getu64(swap, value) getu64(swap, value) - - #define xsh_addr (clazz == ELFCLASS32 \ -- ? (void *)&sh32 \ -- : (void *)&sh64) -+ ? CAST(void *, &sh32) \ -+ : CAST(void *, &sh64)) - #define xsh_sizeof (clazz == ELFCLASS32 \ - ? sizeof(sh32) \ - : sizeof(sh64)) --#define xsh_size (size_t)(clazz == ELFCLASS32 \ -+#define xsh_size CAST(size_t, (clazz == ELFCLASS32 \ - ? elf_getu32(swap, sh32.sh_size) \ -- : elf_getu64(swap, sh64.sh_size)) --#define xsh_offset (off_t)(clazz == ELFCLASS32 \ -+ : elf_getu64(swap, sh64.sh_size))) -+#define xsh_offset CAST(off_t, (clazz == ELFCLASS32 \ - ? elf_getu32(swap, sh32.sh_offset) \ -- : elf_getu64(swap, sh64.sh_offset)) -+ : elf_getu64(swap, sh64.sh_offset))) - #define xsh_type (clazz == ELFCLASS32 \ - ? elf_getu32(swap, sh32.sh_type) \ - : elf_getu32(swap, sh64.sh_type)) - #define xsh_name (clazz == ELFCLASS32 \ - ? elf_getu32(swap, sh32.sh_name) \ - : elf_getu32(swap, sh64.sh_name)) -+ - #define xph_addr (clazz == ELFCLASS32 \ -- ? (void *) &ph32 \ -- : (void *) &ph64) -+ ? CAST(void *, &ph32) \ -+ : CAST(void *, &ph64)) - #define xph_sizeof (clazz == ELFCLASS32 \ - ? sizeof(ph32) \ - : sizeof(ph64)) - #define xph_type (clazz == ELFCLASS32 \ - ? elf_getu32(swap, ph32.p_type) \ - : elf_getu32(swap, ph64.p_type)) --#define xph_offset (off_t)(clazz == ELFCLASS32 \ -+#define xph_offset CAST(off_t, (clazz == ELFCLASS32 \ - ? elf_getu32(swap, ph32.p_offset) \ -- : elf_getu64(swap, ph64.p_offset)) --#define xph_align (size_t)((clazz == ELFCLASS32 \ -- ? (off_t) (ph32.p_align ? \ -- elf_getu32(swap, ph32.p_align) : 4) \ -- : (off_t) (ph64.p_align ? \ -- elf_getu64(swap, ph64.p_align) : 4))) --#define xph_vaddr (size_t)((clazz == ELFCLASS32 \ -- ? (off_t) (ph32.p_vaddr ? \ -- elf_getu32(swap, ph32.p_vaddr) : 4) \ -- : (off_t) (ph64.p_vaddr ? \ -- elf_getu64(swap, ph64.p_vaddr) : 4))) --#define xph_filesz (size_t)((clazz == ELFCLASS32 \ -+ : elf_getu64(swap, ph64.p_offset))) -+#define xph_align CAST(size_t, (clazz == ELFCLASS32 \ -+ ? CAST(off_t, (ph32.p_align ? \ -+ elf_getu32(swap, ph32.p_align) : 4))\ -+ : CAST(off_t, (ph64.p_align ? \ -+ elf_getu64(swap, ph64.p_align) : 4)))) -+#define xph_vaddr CAST(size_t, (clazz == ELFCLASS32 \ -+ ? CAST(off_t, (ph32.p_vaddr ? \ -+ elf_getu32(swap, ph32.p_vaddr) : 4))\ -+ : CAST(off_t, (ph64.p_vaddr ? \ -+ elf_getu64(swap, ph64.p_vaddr) : 4)))) -+#define xph_filesz CAST(size_t, (clazz == ELFCLASS32 \ - ? elf_getu32(swap, ph32.p_filesz) \ - : elf_getu64(swap, ph64.p_filesz))) --#define xnh_addr (clazz == ELFCLASS32 \ -- ? (void *)&nh32 \ -- : (void *)&nh64) --#define xph_memsz (size_t)((clazz == ELFCLASS32 \ -+#define xph_memsz CAST(size_t, ((clazz == ELFCLASS32 \ - ? elf_getu32(swap, ph32.p_memsz) \ -- : elf_getu64(swap, ph64.p_memsz))) -+ : elf_getu64(swap, ph64.p_memsz)))) -+#define xnh_addr (clazz == ELFCLASS32 \ -+ ? CAST(void *, &nh32) \ -+ : CAST(void *, &nh64)) - #define xnh_sizeof (clazz == ELFCLASS32 \ - ? sizeof(nh32) \ - : sizeof(nh64)) -@@ -203,24 +203,36 @@ getu64(int swap, uint64_t value) - #define xnh_descsz (clazz == ELFCLASS32 \ - ? elf_getu32(swap, nh32.n_descsz) \ - : elf_getu32(swap, nh64.n_descsz)) --#define prpsoffsets(i) (clazz == ELFCLASS32 \ -- ? prpsoffsets32[i] \ -- : prpsoffsets64[i]) -+ -+#define xdh_addr (clazz == ELFCLASS32 \ -+ ? CAST(void *, &dh32) \ -+ : CAST(void *, &dh64)) -+#define xdh_sizeof (clazz == ELFCLASS32 \ -+ ? sizeof(dh32) \ -+ : sizeof(dh64)) -+#define xdh_tag (clazz == ELFCLASS32 \ -+ ? elf_getu32(swap, dh32.d_tag) \ -+ : elf_getu64(swap, dh64.d_tag)) -+#define xdh_val (clazz == ELFCLASS32 \ -+ ? elf_getu32(swap, dh32.d_un.d_val) \ -+ : elf_getu64(swap, dh64.d_un.d_val)) -+ - #define xcap_addr (clazz == ELFCLASS32 \ -- ? (void *)&cap32 \ -- : (void *)&cap64) -+ ? CAST(void *, &cap32) \ -+ : CAST(void *, &cap64)) - #define xcap_sizeof (clazz == ELFCLASS32 \ -- ? sizeof cap32 \ -- : sizeof cap64) -+ ? sizeof(cap32) \ -+ : sizeof(cap64)) - #define xcap_tag (clazz == ELFCLASS32 \ - ? elf_getu32(swap, cap32.c_tag) \ - : elf_getu64(swap, cap64.c_tag)) - #define xcap_val (clazz == ELFCLASS32 \ - ? elf_getu32(swap, cap32.c_un.c_val) \ - : elf_getu64(swap, cap64.c_un.c_val)) -+ - #define xauxv_addr (clazz == ELFCLASS32 \ -- ? (void *)&auxv32 \ -- : (void *)&auxv64) -+ ? CAST(void *, &auxv32) \ -+ : CAST(void *, &auxv64)) - #define xauxv_sizeof (clazz == ELFCLASS32 \ - ? sizeof(auxv32) \ - : sizeof(auxv64)) -@@ -231,6 +243,10 @@ getu64(int swap, uint64_t value) - ? elf_getu32(swap, auxv32.a_v) \ - : elf_getu64(swap, auxv64.a_v)) - -+#define prpsoffsets(i) (clazz == ELFCLASS32 \ -+ ? prpsoffsets32[i] \ -+ : prpsoffsets64[i]) -+ - #ifdef ELFCORE - /* - * Try larger offsets first to avoid false matches -@@ -269,8 +285,8 @@ static const size_t prpsoffsets64[] = { - 16, /* FreeBSD, 64-bit */ - }; - --#define NOFFSETS32 (sizeof prpsoffsets32 / sizeof prpsoffsets32[0]) --#define NOFFSETS64 (sizeof prpsoffsets64 / sizeof prpsoffsets64[0]) -+#define NOFFSETS32 (sizeof(prpsoffsets32) / sizeof(prpsoffsets32[0])) -+#define NOFFSETS64 (sizeof(prpsoffsets64) / sizeof(prpsoffsets64[0])) - - #define NOFFSETS (clazz == ELFCLASS32 ? NOFFSETS32 : NOFFSETS64) - -@@ -349,7 +365,8 @@ dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - * Loop through all the program headers. - */ - for ( ; num; num--) { -- if (pread(fd, xph_addr, xph_sizeof, off) < (ssize_t)xph_sizeof) { -+ if (pread(fd, xph_addr, xph_sizeof, off) < -+ CAST(ssize_t, xph_sizeof)) { - file_badread(ms); - return -1; - } -@@ -392,7 +409,7 @@ static void - do_note_netbsd_version(struct magic_set *ms, int swap, void *v) - { - uint32_t desc; -- (void)memcpy(&desc, v, sizeof(desc)); -+ memcpy(&desc, v, sizeof(desc)); - desc = elf_getu32(swap, desc); - - if (file_printf(ms, ", for NetBSD") == -1) -@@ -438,7 +455,7 @@ do_note_freebsd_version(struct magic_set *ms, int swap, void *v) - { - uint32_t desc; - -- (void)memcpy(&desc, v, sizeof(desc)); -+ memcpy(&desc, v, sizeof(desc)); - desc = elf_getu32(swap, desc); - if (file_printf(ms, ", for FreeBSD") == -1) - return; -@@ -536,7 +553,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - } - if (file_printf(ms, ", BuildID[%s]=", btype) == -1) - return 1; -- (void)memcpy(desc, &nbuf[doff], descsz); -+ memcpy(desc, &nbuf[doff], descsz); - for (i = 0; i < descsz; i++) - if (file_printf(ms, "%02x", desc[i]) == -1) - return 1; -@@ -560,7 +577,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && - type == NT_GNU_VERSION && descsz == 16) { - uint32_t desc[4]; -- (void)memcpy(desc, &nbuf[doff], sizeof(desc)); -+ memcpy(desc, &nbuf[doff], sizeof(desc)); - - *flags |= FLAGS_DID_OS_NOTE; - if (file_printf(ms, ", for GNU/") == -1) -@@ -627,7 +644,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - *flags |= FLAGS_DID_OS_NOTE; - if (file_printf(ms, ", for DragonFly") == -1) - return 1; -- (void)memcpy(&desc, &nbuf[doff], sizeof(desc)); -+ memcpy(&desc, &nbuf[doff], sizeof(desc)); - desc = elf_getu32(swap, desc); - if (file_printf(ms, " %d.%d.%d", desc / 100000, - desc / 10000 % 10, desc % 10000) == -1) -@@ -657,7 +674,7 @@ do_pax_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - int did = 0; - - *flags |= FLAGS_DID_NETBSD_PAX; -- (void)memcpy(&desc, &nbuf[doff], sizeof(desc)); -+ memcpy(&desc, &nbuf[doff], sizeof(desc)); - desc = elf_getu32(swap, desc); - - if (desc && file_printf(ms, ", PaX: ") == -1) -@@ -957,7 +974,7 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - - nval = 0; - for (size_t off = 0; off + elsize <= descsz; off += elsize) { -- (void)memcpy(xauxv_addr, &nbuf[doff + off], xauxv_sizeof); -+ memcpy(xauxv_addr, &nbuf[doff + off], xauxv_sizeof); - /* Limit processing to 50 vector entries to prevent DoS */ - if (nval++ >= 50) { - file_error(ms, 0, "Too many ELF Auxv elements"); -@@ -1021,6 +1038,38 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - #endif - } - -+private size_t -+dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size, -+ int clazz, int swap) -+{ -+ Elf32_Dyn dh32; -+ Elf64_Dyn dh64; -+ unsigned char *dbuf = CAST(unsigned char *, vbuf); -+ -+ if (xdh_sizeof + offset > size) { -+ /* -+ * We're out of note headers. -+ */ -+ return xdh_sizeof + offset; -+ } -+ -+ memcpy(xdh_addr, &dbuf[offset], xdh_sizeof); -+ offset += xdh_sizeof; -+ -+ switch (xdh_tag) { -+ case DT_FLAGS_1: -+ if (xdh_val == DF_1_PIE) -+ ms->mode |= 0111; -+ else -+ ms->mode &= ~0111; -+ break; -+ default: -+ break; -+ } -+ return offset; -+} -+ -+ - private size_t - donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - int clazz, int swap, size_t align, int *flags, uint16_t *notecount, -@@ -1043,7 +1092,7 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - return xnh_sizeof + offset; - } - -- (void)memcpy(xnh_addr, &nbuf[offset], xnh_sizeof); -+ memcpy(xnh_addr, &nbuf[offset], xnh_sizeof); - offset += xnh_sizeof; - - namesz = xnh_namesz; -@@ -1057,14 +1106,14 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - } - - if (namesz & 0x80000000) { -- (void)file_printf(ms, ", bad note name size %#lx", -- (unsigned long)namesz); -+ file_printf(ms, ", bad note name size %#lx", -+ CAST(unsigned long, namesz)); - return 0; - } - - if (descsz & 0x80000000) { -- (void)file_printf(ms, ", bad note description size %#lx", -- (unsigned long)descsz); -+ file_printf(ms, ", bad note description size %#lx", -+ CAST(unsigned long, descsz)); - return 0; - } - -@@ -1118,35 +1167,25 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - return offset; - } - -- if (namesz == 7 && strcmp((char *)&nbuf[noff], "NetBSD") == 0) { -+ if (namesz == 7 && strcmp(CAST(char *, &nbuf[noff]), "NetBSD") == 0) { -+ int descw, flag; -+ const char *str, *tag; - if (descsz > 100) - descsz = 100; - switch (xnh_type) { - case NT_NETBSD_VERSION: - return offset; - case NT_NETBSD_MARCH: -- if (*flags & FLAGS_DID_NETBSD_MARCH) -- return offset; -- *flags |= FLAGS_DID_NETBSD_MARCH; -- if (file_printf(ms, ", compiled for: %.*s", -- (int)descsz, (const char *)&nbuf[doff]) == -1) -- return offset; -+ flag = FLAGS_DID_NETBSD_MARCH; -+ tag = "compiled for"; - break; - case NT_NETBSD_CMODEL: -- if (*flags & FLAGS_DID_NETBSD_CMODEL) -- return offset; -- *flags |= FLAGS_DID_NETBSD_CMODEL; -- if (file_printf(ms, ", compiler model: %.*s", -- (int)descsz, (const char *)&nbuf[doff]) == -1) -- return offset; -+ flag = FLAGS_DID_NETBSD_CMODEL; -+ tag = "compiler model"; - break; - case NT_NETBSD_EMULATION: -- if (*flags & FLAGS_DID_NETBSD_EMULATION) -- return offset; -- *flags |= FLAGS_DID_NETBSD_EMULATION; -- if (file_printf(ms, ", emulation: %.*s", -- (int)descsz, (const char *)&nbuf[doff]) == -1) -- return offset; -+ flag = FLAGS_DID_NETBSD_EMULATION; -+ tag = "emulation:"; - break; - default: - if (*flags & FLAGS_DID_NETBSD_UNKNOWN) -@@ -1154,8 +1193,15 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - *flags |= FLAGS_DID_NETBSD_UNKNOWN; - if (file_printf(ms, ", note=%u", xnh_type) == -1) - return offset; -- break; -+ return offset; - } -+ -+ if (*flags & flag) -+ return offset; -+ str = CAST(const char *, &nbuf[doff]); -+ descw = CAST(int, descsz); -+ *flags |= flag; -+ file_printf(ms, ", %s: %.*s", tag, descw, str); - return offset; - } - -@@ -1236,7 +1282,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - - /* Read offset of name section to be able to read section names later */ - if (pread(fd, xsh_addr, xsh_sizeof, CAST(off_t, (off + size * strtab))) -- < (ssize_t)xsh_sizeof) { -+ < CAST(ssize_t, xsh_sizeof)) { - if (file_printf(ms, ", missing section headers") == -1) - return -1; - return 0; -@@ -1245,7 +1291,8 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - - for ( ; num; num--) { - /* Read the name of this section. */ -- if ((namesize = pread(fd, name, sizeof(name) - 1, name_off + xsh_name)) == -1) { -+ if ((namesize = pread(fd, name, sizeof(name) - 1, -+ name_off + xsh_name)) == -1) { - file_badread(ms); - return -1; - } -@@ -1255,7 +1302,8 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - stripped = 0; - } - -- if (pread(fd, xsh_addr, xsh_sizeof, off) < (ssize_t)xsh_sizeof) { -+ if (pread(fd, xsh_addr, xsh_sizeof, off) < -+ CAST(ssize_t, xsh_sizeof)) { - file_badread(ms); - return -1; - } -@@ -1281,14 +1329,15 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - /* Things we can determine when we seek */ - switch (xsh_type) { - case SHT_NOTE: -- if ((uintmax_t)(xsh_size + xsh_offset) > -- (uintmax_t)fsize) { -+ if (CAST(uintmax_t, (xsh_size + xsh_offset)) > -+ CAST(uintmax_t, fsize)) { - if (file_printf(ms, - ", note offset/size %#" INTMAX_T_FORMAT - "x+%#" INTMAX_T_FORMAT "x exceeds" - " file size %#" INTMAX_T_FORMAT "x", -- (uintmax_t)xsh_offset, (uintmax_t)xsh_size, -- (uintmax_t)fsize) == -1) -+ CAST(uintmax_t, xsh_offset), -+ CAST(uintmax_t, xsh_size), -+ CAST(uintmax_t, fsize)) == -1) - return -1; - return 0; - } -@@ -1298,7 +1347,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - return -1; - } - if (pread(fd, nbuf, xsh_size, xsh_offset) < -- (ssize_t)xsh_size) { -+ CAST(ssize_t, xsh_size)) { - file_badread(ms); - free(nbuf); - return -1; -@@ -1306,9 +1355,9 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - - noff = 0; - for (;;) { -- if (noff >= (off_t)xsh_size) -+ if (noff >= CAST(off_t, xsh_size)) - break; -- noff = donote(ms, nbuf, (size_t)noff, -+ noff = donote(ms, nbuf, CAST(size_t, noff), - xsh_size, clazz, swap, 4, flags, notecount, - fd, 0, 0, 0); - if (noff == 0) -@@ -1330,7 +1379,8 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - - if (nbadcap > 5) - break; -- if (lseek(fd, xsh_offset, SEEK_SET) == (off_t)-1) { -+ if (lseek(fd, xsh_offset, SEEK_SET) -+ == CAST(off_t, -1)) { - file_badseek(ms); - return -1; - } -@@ -1339,11 +1389,12 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - Elf32_Cap cap32; - Elf64_Cap cap64; - char cbuf[/*CONSTCOND*/ -- MAX(sizeof cap32, sizeof cap64)]; -- if ((coff += xcap_sizeof) > (off_t)xsh_size) -+ MAX(sizeof(cap32), sizeof(cap64))]; -+ if ((coff += xcap_sizeof) > -+ CAST(off_t, xsh_size)) - break; -- if (read(fd, cbuf, (size_t)xcap_sizeof) != -- (ssize_t)xcap_sizeof) { -+ if (read(fd, cbuf, CAST(size_t, xcap_sizeof)) != -+ CAST(ssize_t, xcap_sizeof)) { - file_badread(ms); - return -1; - } -@@ -1377,7 +1428,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - #endif - break; - } -- (void)memcpy(xcap_addr, cbuf, xcap_sizeof); -+ memcpy(xcap_addr, cbuf, xcap_sizeof); - switch (xcap_tag) { - case CA_SUNW_NULL: - break; -@@ -1392,8 +1443,9 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - ", with unknown capability " - "%#" INT64_T_FORMAT "x = %#" - INT64_T_FORMAT "x", -- (unsigned long long)xcap_tag, -- (unsigned long long)xcap_val) == -1) -+ CAST(unsigned long long, xcap_tag), -+ CAST(unsigned long long, xcap_val)) -+ == -1) - return -1; - if (nbadcap++ > 2) - coff = xsh_size; -@@ -1446,12 +1498,12 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - if (file_printf(ms, - " unknown hardware capability %#" - INT64_T_FORMAT "x", -- (unsigned long long)cap_hw1) == -1) -+ CAST(unsigned long long, cap_hw1)) == -1) - return -1; - } else { - if (file_printf(ms, - " hardware capability %#" INT64_T_FORMAT "x", -- (unsigned long long)cap_hw1) == -1) -+ CAST(unsigned long long, cap_hw1)) == -1) - return -1; - } - } -@@ -1468,7 +1520,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - if (file_printf(ms, - ", with unknown software capability %#" - INT64_T_FORMAT "x", -- (unsigned long long)cap_sf1) == -1) -+ CAST(unsigned long long, cap_sf1)) == -1) - return -1; - } - return 0; -@@ -1487,9 +1539,9 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - Elf32_Phdr ph32; - Elf64_Phdr ph64; - const char *linking_style = "statically"; -- const char *interp = ""; - unsigned char nbuf[BUFSIZ]; - char ibuf[BUFSIZ]; -+ char interp[BUFSIZ]; - ssize_t bufsize; - size_t offset, align, len; - -@@ -1499,8 +1551,11 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - return 0; - } - -+ interp[0] = '\0'; - for ( ; num; num--) { -- if (pread(fd, xph_addr, xph_sizeof, off) < (ssize_t)xph_sizeof) { -+ int doread; -+ if (pread(fd, xph_addr, xph_sizeof, off) < -+ CAST(ssize_t, xph_sizeof)) { - file_badread(ms); - return -1; - } -@@ -1513,6 +1568,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - switch (xph_type) { - case PT_DYNAMIC: - linking_style = "dynamically"; -+ doread = 1; - break; - case PT_NOTE: - if (sh_num) /* Did this through section headers */ -@@ -1521,21 +1577,16 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - align < 4) { - if (file_printf(ms, - ", invalid note alignment %#lx", -- (unsigned long)align) == -1) -+ CAST(unsigned long, align)) == -1) - return -1; - align = 4; - } - /*FALLTHROUGH*/ - case PT_INTERP: -- len = xph_filesz < sizeof(nbuf) ? xph_filesz -- : sizeof(nbuf); -- bufsize = pread(fd, nbuf, len, xph_offset); -- if (bufsize == -1) { -- file_badread(ms); -- return -1; -- } -+ doread = 1; - break; - default: -+ doread = 0; - if (fsize != SIZE_UNKNOWN && xph_offset > fsize) { - /* Maybe warn here? */ - continue; -@@ -1543,14 +1594,39 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - break; - } - -+ if (doread) { -+ len = xph_filesz < sizeof(nbuf) ? xph_filesz -+ : sizeof(nbuf); -+ bufsize = pread(fd, nbuf, len, xph_offset); -+ if (bufsize == -1) { -+ file_badread(ms); -+ return -1; -+ } -+ } else -+ len = 0; -+ - /* Things we can determine when we seek */ - switch (xph_type) { -+ case PT_DYNAMIC: -+ offset = 0; -+ for (;;) { -+ if (offset >= (size_t)bufsize) -+ break; -+ offset = dodynamic(ms, nbuf, offset, -+ CAST(size_t, bufsize), clazz, swap); -+ if (offset == 0) -+ break; -+ } -+ if (ms->flags & MAGIC_MIME) -+ continue; -+ break; -+ - case PT_INTERP: - if (bufsize && nbuf[0]) { - nbuf[bufsize - 1] = '\0'; -- interp = (const char *)nbuf; -+ memcpy(interp, nbuf, bufsize); - } else -- interp = "*empty*"; -+ strlcpy(interp, "*empty*", sizeof(interp)); - break; - case PT_NOTE: - /* -@@ -1562,7 +1638,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - if (offset >= (size_t)bufsize) - break; - offset = donote(ms, nbuf, offset, -- (size_t)bufsize, clazz, swap, align, -+ CAST(size_t, bufsize), clazz, swap, align, - flags, notecount, fd, 0, 0, 0); - if (offset == 0) - break; -@@ -1591,7 +1667,7 @@ file_tryelf(struct magic_set *ms, const struct buffer *b) - size_t nbytes = b->flen; - union { - int32_t l; -- char c[sizeof (int32_t)]; -+ char c[sizeof(int32_t)]; - } u; - int clazz; - int swap; -@@ -1619,7 +1695,8 @@ file_tryelf(struct magic_set *ms, const struct buffer *b) - /* - * If we cannot seek, it must be a pipe, socket or fifo. - */ -- if((lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) && (errno == ESPIPE)) -+ if((lseek(fd, CAST(off_t, 0), SEEK_SET) == CAST(off_t, -1)) -+ && (errno == ESPIPE)) - fd = file_pipe2file(ms, fd, buf, nbytes); - - if (fstat(fd, &st) == -1) { -diff --git a/src/readelf.h b/src/readelf.h -index ef880b9..f2f3dc3 100644 ---- a/src/readelf.h -+++ b/src/readelf.h -@@ -430,4 +430,107 @@ typedef struct { - #define AV_386_SSE4_1 0x00800000 - #define AV_386_SSE4_2 0x01000000 - -+/* -+ * Dynamic Section structure array -+ */ -+typedef struct { -+ Elf32_Word d_tag; /* entry tag value */ -+ union { -+ Elf32_Addr d_ptr; -+ Elf32_Word d_val; -+ } d_un; -+} Elf32_Dyn; -+ -+typedef struct { -+ Elf64_Xword d_tag; /* entry tag value */ -+ union { -+ Elf64_Addr d_ptr; -+ Elf64_Xword d_val; -+ } d_un; -+} Elf64_Dyn; -+ -+/* d_tag */ -+#define DT_NULL 0 /* Marks end of dynamic array */ -+#define DT_NEEDED 1 /* Name of needed library (DT_STRTAB offset) */ -+#define DT_PLTRELSZ 2 /* Size, in bytes, of relocations in PLT */ -+#define DT_PLTGOT 3 /* Address of PLT and/or GOT */ -+#define DT_HASH 4 /* Address of symbol hash table */ -+#define DT_STRTAB 5 /* Address of string table */ -+#define DT_SYMTAB 6 /* Address of symbol table */ -+#define DT_RELA 7 /* Address of Rela relocation table */ -+#define DT_RELASZ 8 /* Size, in bytes, of DT_RELA table */ -+#define DT_RELAENT 9 /* Size, in bytes, of one DT_RELA entry */ -+#define DT_STRSZ 10 /* Size, in bytes, of DT_STRTAB table */ -+#define DT_SYMENT 11 /* Size, in bytes, of one DT_SYMTAB entry */ -+#define DT_INIT 12 /* Address of initialization function */ -+#define DT_FINI 13 /* Address of termination function */ -+#define DT_SONAME 14 /* Shared object name (DT_STRTAB offset) */ -+#define DT_RPATH 15 /* Library search path (DT_STRTAB offset) */ -+#define DT_SYMBOLIC 16 /* Start symbol search within local object */ -+#define DT_REL 17 /* Address of Rel relocation table */ -+#define DT_RELSZ 18 /* Size, in bytes, of DT_REL table */ -+#define DT_RELENT 19 /* Size, in bytes, of one DT_REL entry */ -+#define DT_PLTREL 20 /* Type of PLT relocation entries */ -+#define DT_DEBUG 21 /* Used for debugging; unspecified */ -+#define DT_TEXTREL 22 /* Relocations might modify non-writable seg */ -+#define DT_JMPREL 23 /* Address of relocations associated with PLT */ -+#define DT_BIND_NOW 24 /* Process all relocations at load-time */ -+#define DT_INIT_ARRAY 25 /* Address of initialization function array */ -+#define DT_FINI_ARRAY 26 /* Size, in bytes, of DT_INIT_ARRAY array */ -+#define DT_INIT_ARRAYSZ 27 /* Address of termination function array */ -+#define DT_FINI_ARRAYSZ 28 /* Size, in bytes, of DT_FINI_ARRAY array*/ -+#define DT_RUNPATH 29 /* overrides DT_RPATH */ -+#define DT_FLAGS 30 /* Encodes ORIGIN, SYMBOLIC, TEXTREL, BIND_NOW, STATIC_TLS */ -+#define DT_ENCODING 31 /* ??? */ -+#define DT_PREINIT_ARRAY 32 /* Address of pre-init function array */ -+#define DT_PREINIT_ARRAYSZ 33 /* Size, in bytes, of DT_PREINIT_ARRAY array */ -+#define DT_NUM 34 -+ -+#define DT_LOOS 0x60000000 /* Operating system specific range */ -+#define DT_VERSYM 0x6ffffff0 /* Symbol versions */ -+#define DT_FLAGS_1 0x6ffffffb /* ELF dynamic flags */ -+#define DT_VERDEF 0x6ffffffc /* Versions defined by file */ -+#define DT_VERDEFNUM 0x6ffffffd /* Number of versions defined by file */ -+#define DT_VERNEED 0x6ffffffe /* Versions needed by file */ -+#define DT_VERNEEDNUM 0x6fffffff /* Number of versions needed by file */ -+#define DT_HIOS 0x6fffffff -+#define DT_LOPROC 0x70000000 /* Processor-specific range */ -+#define DT_HIPROC 0x7fffffff -+ -+/* Flag values for DT_FLAGS */ -+#define DF_ORIGIN 0x00000001 /* uses $ORIGIN */ -+#define DF_SYMBOLIC 0x00000002 /* */ -+#define DF_TEXTREL 0x00000004 /* */ -+#define DF_BIND_NOW 0x00000008 /* */ -+#define DF_STATIC_TLS 0x00000010 /* */ -+ -+/* Flag values for DT_FLAGS_1 */ -+#define DF_1_NOW 0x00000001 /* Same as DF_BIND_NOW */ -+#define DF_1_GLOBAL 0x00000002 /* Unused */ -+#define DF_1_GROUP 0x00000004 /* Is member of group */ -+#define DF_1_NODELETE 0x00000008 /* Cannot be deleted from process */ -+#define DF_1_LOADFLTR 0x00000010 /* Immediate loading of filters */ -+#define DF_1_INITFIRST 0x00000020 /* init/fini takes priority */ -+#define DF_1_NOOPEN 0x00000040 /* Do not allow loading on dlopen() */ -+#define DF_1_ORIGIN 0x00000080 /* Require $ORIGIN processing */ -+#define DF_1_DIRECT 0x00000100 /* Enable direct bindings */ -+#define DF_1_INTERPOSE 0x00000400 /* Is an interposer */ -+#define DF_1_NODEFLIB 0x00000800 /* Ignore default library search path */ -+#define DF_1_NODUMP 0x00001000 /* Cannot be dumped with dldump(3C) */ -+#define DF_1_CONFALT 0x00002000 /* Configuration alternative */ -+#define DF_1_ENDFILTEE 0x00004000 /* Filtee ends filter's search */ -+#define DF_1_DISPRELDNE 0x00008000 /* Did displacement relocation */ -+#define DF_1_DISPRELPND 0x00010000 /* Pending displacement relocation */ -+#define DF_1_NODIRECT 0x00020000 /* Has non-direct bindings */ -+#define DF_1_IGNMULDEF 0x00040000 /* Used internally */ -+#define DF_1_NOKSYMS 0x00080000 /* Used internally */ -+#define DF_1_NOHDR 0x00100000 /* Used internally */ -+#define DF_1_EDITED 0x00200000 /* Has been modified since build */ -+#define DF_1_NORELOC 0x00400000 /* Used internally */ -+#define DF_1_SYMINTPOSE 0x00800000 /* Has individual symbol interposers */ -+#define DF_1_GLOBAUDIT 0x01000000 /* Require global auditing */ -+#define DF_1_SINGLETON 0x02000000 /* Has singleton symbols */ -+#define DF_1_STUB 0x04000000 /* Stub */ -+#define DF_1_PIE 0x08000000 /* Position Independent Executable */ -+ - #endif --- -2.39.1 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-2.patch b/SOURCES/file-5.33-static-PIE-binaries-2.patch deleted file mode 100644 index 85446ae..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-2.patch +++ /dev/null @@ -1,68 +0,0 @@ -From f8ba1437114e408de0f66efb272fdc1de986017a Mon Sep 17 00:00:00 2001 -From: Vincent Mihalkovic -Date: Mon, 6 Feb 2023 14:39:58 +0100 -Subject: [PATCH] We need to process the dynamic section so that we can set $x - for mime. - -9ffbd485ba4647827c4bdacf3a2de690f6765b0c ---- - src/readelf.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index cdc211f..94cdaca 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -1273,6 +1273,8 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - uint64_t cap_sf1 = 0; /* SunOS 5.x software capabilities */ - char name[50]; - ssize_t namesize; -+ if (ms->flags & MAGIC_MIME) -+ return 0; - - if (size != xsh_sizeof) { - if (file_printf(ms, ", corrupted section header size") == -1) -@@ -1622,6 +1624,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - break; - - case PT_INTERP: -+ if (ms->flags & MAGIC_MIME) -+ continue; - if (bufsize && nbuf[0]) { - nbuf[bufsize - 1] = '\0'; - memcpy(interp, nbuf, bufsize); -@@ -1629,6 +1633,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - strlcpy(interp, "*empty*", sizeof(interp)); - break; - case PT_NOTE: -+ if (ms->flags & MAGIC_MIME) -+ return 0; - /* - * This is a PT_NOTE section; loop through all the notes - * in the section. -@@ -1645,9 +1651,13 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - } - break; - default: -+ if (ms->flags & MAGIC_MIME) -+ continue; - break; - } - } -+ if (ms->flags & MAGIC_MIME) -+ return 0; - if (file_printf(ms, ", %s linked", linking_style) - == -1) - return -1; -@@ -1678,7 +1688,7 @@ file_tryelf(struct magic_set *ms, const struct buffer *b) - Elf64_Ehdr elf64hdr; - uint16_t type, phnum, shnum, notecount; - -- if (ms->flags & (MAGIC_MIME|MAGIC_APPLE|MAGIC_EXTENSION)) -+ if (ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION)) - return 0; - /* - * ELF executables have multiple section headers in arbitrary --- -2.39.1 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-3.patch b/SOURCES/file-5.33-static-PIE-binaries-3.patch deleted file mode 100644 index 13314a1..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-3.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 27c951adbd5d7ebe95f08c18257ea031bdd59ee1 Mon Sep 17 00:00:00 2001 -From: Vincent Mihalkovic -Date: Mon, 6 Feb 2023 15:00:16 +0100 -Subject: [PATCH] For dynamic binaries let the df_1 pie flag determine if we - are pie or a shared object, and ignore the mode bits. - -upstream commit: 03084b161cf888b5286dbbcd964c31ccad4f64d9 ---- - src/readelf.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 94cdaca..9c75c0a 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -1058,7 +1058,7 @@ dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - - switch (xdh_tag) { - case DT_FLAGS_1: -- if (xdh_val == DF_1_PIE) -+ if (xdh_val & DF_1_PIE) - ms->mode |= 0111; - else - ms->mode &= ~0111; -@@ -1611,6 +1611,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - switch (xph_type) { - case PT_DYNAMIC: - offset = 0; -+ // Let DF_1 determine if we are PIE or not. -+ ms->mode &= ~0111; - for (;;) { - if (offset >= (size_t)bufsize) - break; --- -2.39.1 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-4.patch b/SOURCES/file-5.33-static-PIE-binaries-4.patch deleted file mode 100644 index 03cf938..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-4.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 948d0e24f33c3b411b5ec1e320acec889e6781b8 Mon Sep 17 00:00:00 2001 -From: Vincent Mihalkovic -Date: Mon, 6 Feb 2023 15:04:33 +0100 -Subject: [PATCH] Improve detection of static-pie binaries, and don't call them - "dynamically linked", but call them "static-pie" linked. - -363d7fcf703ad3ebf37b45693b2c9e43eb8b4176 ---- - src/readelf.c | 35 +++++++++++++++++++++++++---------- - 1 file changed, 25 insertions(+), 10 deletions(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 9c75c0a..0011659 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -1040,7 +1040,7 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - - private size_t - dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size, -- int clazz, int swap) -+ int clazz, int swap, int *pie, size_t *need) - { - Elf32_Dyn dh32; - Elf64_Dyn dh64; -@@ -1058,11 +1058,15 @@ dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size, - - switch (xdh_tag) { - case DT_FLAGS_1: -+ *pie = 1; - if (xdh_val & DF_1_PIE) - ms->mode |= 0111; - else - ms->mode &= ~0111; - break; -+ case DT_NEEDED: -+ (*need)++; -+ break; - default: - break; - } -@@ -1529,9 +1533,10 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, - } - - /* -- * Look through the program headers of an executable image, searching -- * for a PT_INTERP section; if one is found, it's dynamically linked, -- * otherwise it's statically linked. -+ * Look through the program headers of an executable image, to determine -+ * if it is statically or dynamically linked. If it has a dynamic section, -+ * it is pie, and does not have an interpreter or needed libraries, we -+ * call it static pie. - */ - private int - dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, -@@ -1540,12 +1545,13 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - { - Elf32_Phdr ph32; - Elf64_Phdr ph64; -- const char *linking_style = "statically"; -+ const char *linking_style; - unsigned char nbuf[BUFSIZ]; - char ibuf[BUFSIZ]; - char interp[BUFSIZ]; - ssize_t bufsize; -- size_t offset, align, len; -+ size_t offset, align, len, need = 0; -+ int pie = 0, dynamic = 0; - - if (size != xph_sizeof) { - if (file_printf(ms, ", corrupted program header size") == -1) -@@ -1569,7 +1575,6 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - /* Things we can determine before we seek */ - switch (xph_type) { - case PT_DYNAMIC: -- linking_style = "dynamically"; - doread = 1; - break; - case PT_NOTE: -@@ -1610,6 +1615,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - /* Things we can determine when we seek */ - switch (xph_type) { - case PT_DYNAMIC: -+ dynamic = 1; - offset = 0; - // Let DF_1 determine if we are PIE or not. - ms->mode &= ~0111; -@@ -1617,7 +1623,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - if (offset >= (size_t)bufsize) - break; - offset = dodynamic(ms, nbuf, offset, -- CAST(size_t, bufsize), clazz, swap); -+ CAST(size_t, bufsize), clazz, swap, -+ &pie, &need); - if (offset == 0) - break; - } -@@ -1626,6 +1633,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - break; - - case PT_INTERP: -+ need++; - if (ms->flags & MAGIC_MIME) - continue; - if (bufsize && nbuf[0]) { -@@ -1660,8 +1668,15 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, - } - if (ms->flags & MAGIC_MIME) - return 0; -- if (file_printf(ms, ", %s linked", linking_style) -- == -1) -+ if (dynamic) { -+ if (pie && need == 0) -+ linking_style = "static-pie"; -+ else -+ linking_style = "dynamically"; -+ } else { -+ linking_style = "statically"; -+ } -+ if (file_printf(ms, ", %s linked", linking_style) == -1) - return -1; - if (interp[0]) - if (file_printf(ms, ", interpreter %s", --- -2.39.1 - diff --git a/SOURCES/file-5.33-static-PIE-binaries-5.patch b/SOURCES/file-5.33-static-PIE-binaries-5.patch deleted file mode 100644 index 6597ac1..0000000 --- a/SOURCES/file-5.33-static-PIE-binaries-5.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/readelf.c b/src/readelf.c -index d836e68..6d4b40b 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -69,7 +69,7 @@ toomany(struct magic_set *ms, const char *name, uint16_t num) - { - if (file_printf(ms, ", too many %s (%u)", name, num) == -1) - return -1; -- return 0; -+ return 1; - } - - private uint16_t diff --git a/SOURCES/file-5.33-thermocam-magic.patch b/SOURCES/file-5.33-thermocam-magic.patch deleted file mode 100644 index 38a1156..0000000 --- a/SOURCES/file-5.33-thermocam-magic.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/magic/Magdir/measure b/magic/Magdir/measure -index f23c1d6..963d85f 100644 ---- a/magic/Magdir/measure -+++ b/magic/Magdir/measure -@@ -8,31 +8,31 @@ - >0 beshort x scale %d- - >2 beshort x \b%d, - >4 lefloat x spot sensor temperature %f, -->9 byte 0 unit celsius, -->9 byte 1 unit fahrenheit, -->8 byte x color scheme %d -->10 byte 1 \b, show spot sensor -->11 byte 1 \b, show scale bar -->12 byte &1 \b, minimum point enabled -->12 byte &2 \b, maximum point enabled -+>9 ubyte 0 unit celsius, -+>9 ubyte 1 unit fahrenheit, -+>8 ubyte x color scheme %d -+>10 ubyte 1 \b, show spot sensor -+>11 ubyte 1 \b, show scale bar -+>12 ubyte &1 \b, minimum point enabled -+>12 ubyte &2 \b, maximum point enabled - >13 lefloat x \b, calibration: offset %f, - >17 lefloat x slope %f - - 0 name diy-thermocam-checker -->9 byte <2 -->>10 byte <2 -->>>11 byte <2 -->>>>12 byte <4 -+>9 ubyte <2 -+>>10 ubyte <2 -+>>>11 ubyte <2 -+>>>>12 ubyte <4 - >>>>>17 lefloat >0.0001 DIY-Thermocam raw data - - # V2 and Leption 3.x: --38408 byte <19 -+38408 ubyte <19 - >38400 use diy-thermocam-checker - >>38400 default x (Lepton 3.x), - >>>38400 use diy-thermocam-parser - - # V1 or Lepton 2.x --9608 byte <19 -+9608 ubyte <19 - >9600 use diy-thermocam-checker - >>9600 default x (Lepton 2.x), - >>>9600 use diy-thermocam-parser diff --git a/SOURCES/file-5.33-whitespace-compare.patch b/SOURCES/file-5.33-whitespace-compare.patch deleted file mode 100644 index 8e035a0..0000000 --- a/SOURCES/file-5.33-whitespace-compare.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -urp file-5.33.orig/src/softmagic.c file-5.33/src/softmagic.c ---- file-5.33.orig/src/softmagic.c 2018-04-15 14:49:15.000000000 -0400 -+++ file-5.33/src/softmagic.c 2020-12-14 12:21:13.298285158 -0500 -@@ -1758,7 +1758,9 @@ file_strncmp(const char *s1, const char - */ - const unsigned char *a = (const unsigned char *)s1; - const unsigned char *b = (const unsigned char *)s2; -- const unsigned char *eb = b + len; -+ uint32_t ws = flags & (STRING_COMPACT_WHITESPACE | -+ STRING_COMPACT_OPTIONAL_WHITESPACE); -+ const unsigned char *eb = b + (ws ? strlen(s2) : len); - uint64_t v; - - /* diff --git a/SOURCES/file-5.34-ebpf-magic.patch b/SOURCES/file-5.34-ebpf-magic.patch deleted file mode 100644 index abcadf8..0000000 --- a/SOURCES/file-5.34-ebpf-magic.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b675e1cf6c5f047a1ab52b7dcea3c83ea6aac69f Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Fri, 9 Nov 2018 17:51:12 +0000 -Subject: [PATCH] Add eBPF magic from Matteo Croce - -Upstream-commit: 4cf4e817457ce6ca32452a7c80b27e96be6441dc -Signed-off-by: Kamil Dudka ---- - magic/Magdir/elf | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/magic/Magdir/elf b/magic/Magdir/elf -index 133bd1f..7c6011c 100644 ---- a/magic/Magdir/elf -+++ b/magic/Magdir/elf -@@ -263,6 +263,7 @@ - >18 leshort 217 iCelero CoolEngine, - >18 leshort 218 Nanoradio Optimized RISC, - >18 leshort 243 UCB RISC-V, -+>18 leshort 247 eBPF, - >18 leshort 0x1057 AVR (unofficial), - >18 leshort 0x1059 MSP430 (unofficial), - >18 leshort 0x1223 Adapteva Epiphany (unofficial), --- -2.17.2 - diff --git a/SOURCES/file-5.35-man-apple.patch b/SOURCES/file-5.35-man-apple.patch deleted file mode 100644 index 78b0fdf..0000000 --- a/SOURCES/file-5.35-man-apple.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 5bccda402a33b4b6fee13cbc910580a85f1ab73a Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 18 Feb 2019 18:59:25 +0000 -Subject: [PATCH 1/2] Mention that the apple filetype/creator is only available for - entries that have it (Kamil Dudka) - -Upstream-commit: 642f269ef99930b44daa2236908da7d05a68eb08 -Signed-off-by: Kamil Dudka ---- - doc/file.man | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/doc/file.man b/doc/file.man -index 0968321..98061ba 100644 ---- a/doc/file.man -+++ b/doc/file.man -@@ -171,6 +171,9 @@ Causes the file command to output the file type and creator code as - used by older MacOS versions. - The code consists of eight letters, - the first describing the file type, the latter the creator. -+the first describing the file type, the latter the creator. -+This option works properly only for file formats that have the -+apple-style output defined. - .It Fl b , Fl Fl brief - Do not prepend filenames to output lines (brief mode). - .It Fl C , Fl Fl compile --- -2.20.1 - - -From f7f3e751c0e606592b4d377a479b40f6964705ab Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Sun, 3 Mar 2019 02:32:40 +0000 -Subject: [PATCH 2/2] remove duplicate line (chefe) - -Upstream-commit: cde5f5962ebfd057fc2e330da3b36470e6ee3724 -Signed-off-by: Kamil Dudka ---- - doc/file.man | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/doc/file.man b/doc/file.man -index 98061ba..05da3a7 100644 ---- a/doc/file.man -+++ b/doc/file.man -@@ -171,7 +171,6 @@ Causes the file command to output the file type and creator code as - used by older MacOS versions. - The code consists of eight letters, - the first describing the file type, the latter the creator. --the first describing the file type, the latter the creator. - This option works properly only for file formats that have the - apple-style output defined. - .It Fl b , Fl Fl brief --- -2.21.1 - diff --git a/SOURCES/file-5.35-netpbm.patch b/SOURCES/file-5.35-netpbm.patch deleted file mode 100644 index 1ae9637..0000000 --- a/SOURCES/file-5.35-netpbm.patch +++ /dev/null @@ -1,67 +0,0 @@ -From b3842fb61c829b0b62e7b8a058b8a86cd83aa0e7 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Tue, 22 Jan 2019 16:17:25 +0000 -Subject: [PATCH] Make netpbm beat DOS/MBR magic again (Kamil Dudka) - -Upstream-commit: d2f82e2601e551badc03c4ac7a463d8e18f53e32 -Signed-off-by: Kamil Dudka ---- - magic/Magdir/images | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/magic/Magdir/images b/magic/Magdir/images -index fd20261..afe906c 100644 ---- a/magic/Magdir/images -+++ b/magic/Magdir/images -@@ -175,42 +175,42 @@ - >0 regex/4 P1[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, bitmap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-bitmap - - 0 search/1 P2 - >0 regex/4 P2[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, greymap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-greymap - - 0 search/1 P3 - >0 regex/4 P3[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, pixmap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-pixmap - - 0 string P4 - >0 regex/4 P4[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, rawbits, bitmap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-bitmap - - 0 string P5 - >0 regex/4 P5[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, rawbits, greymap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-greymap - - 0 string P6 - >0 regex/4 P6[\040\t\f\r\n] - >>0 use netpbm - >>>0 string x \b, rawbits, pixmap --!:strength + 45 -+!:strength + 65 - !:mime image/x-portable-pixmap - - 0 string P7 Netpbm PAM image file --- -2.20.1 - diff --git a/SOURCES/file-5.35-ppc-core.patch b/SOURCES/file-5.35-ppc-core.patch deleted file mode 100644 index 1c8a9e7..0000000 --- a/SOURCES/file-5.35-ppc-core.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 7a4b49897c3bc63bdf680f8cb1d7a04ac932a4ff Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 21 May 2018 16:32:34 +0000 -Subject: [PATCH 1/2] Add missing commas. - -Upstream-commit: defcf7e39943780dd19ca002c478e52ec9ee5cbc -Signed-off-by: Kamil Dudka ---- - magic/Magdir/elf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/magic/Magdir/elf b/magic/Magdir/elf -index 7c6ac8f..d5b2d02 100644 ---- a/magic/Magdir/elf -+++ b/magic/Magdir/elf -@@ -50,7 +50,7 @@ - !:mime application/x-executable - >16 leshort 3 shared object, - !:mime application/x-sharedlib -->16 leshort 4 core file -+>16 leshort 4 core file, - !:mime application/x-coredump - # Core file detection is not reliable. - #>>>(0x38+0xcc) string >\0 of '%s' --- -2.20.1 - - -From 1c7aa7b88ef9f53e19a64961867427b0c1f04857 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Tue, 22 Jan 2019 16:28:42 +0000 -Subject: [PATCH 2/2] Add Linux PowerPC core offsets for Linux (which are off-by-4 - of the regular offsets), after the regular Linux offsets so that there is no - confusion. The linux offsets are tried first since they are before, so on PPC - they should contain binary data and not match. Addition requested by: Ondrej - Dubaj/Kamil Dudka - -Upstream-commit: 6367a7c9b476767a692f76e78e3b355dc9386e48 -Signed-off-by: Kamil Dudka ---- - src/readelf.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index d96a538..c101483 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -246,7 +246,10 @@ static const size_t prpsoffsets32[] = { - 84, /* SunOS 5.x (short name) */ - - 44, /* Linux (command line) */ -- 28, /* Linux 2.0.36 (short name) */ -+ 28, /* Linux (short name) */ -+ -+ 48, /* Linux PowerPC (command line) */ -+ 32, /* Linux PowerPC (short name) */ - - 8, /* FreeBSD */ - }; --- -2.20.1 - diff --git a/SOURCES/file-5.37-CVE-2019-18218.patch b/SOURCES/file-5.37-CVE-2019-18218.patch deleted file mode 100644 index 89b9bde..0000000 --- a/SOURCES/file-5.37-CVE-2019-18218.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f73ad90e797824569008a054bea6c8215883a3a0 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 26 Aug 2019 14:31:39 +0000 -Subject: [PATCH] Limit the number of elements in a vector (found by oss-fuzz) - -Upstream-commit: 46a8443f76cec4b41ec736eca396984c74664f84 -Signed-off-by: Kamil Dudka ---- - src/cdf.c | 7 +++---- - src/cdf.h | 1 + - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/cdf.c b/src/cdf.c -index 556a3ff..8bb0a6d 100644 ---- a/src/cdf.c -+++ b/src/cdf.c -@@ -1013,8 +1013,9 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, - goto out; - } - nelements = CDF_GETUINT32(q, 1); -- if (nelements == 0) { -- DPRINTF(("CDF_VECTOR with nelements == 0\n")); -+ if (nelements > CDF_ELEMENT_LIMIT || nelements == 0) { -+ DPRINTF(("CDF_VECTOR with nelements == %" -+ SIZE_T_FORMAT "u\n", nelements)); - goto out; - } - slen = 2; -@@ -1056,8 +1057,6 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, - goto out; - inp += nelem; - } -- DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n", -- nelements)); - for (j = 0; j < nelements && i < sh.sh_properties; - j++, i++) - { -diff --git a/src/cdf.h b/src/cdf.h -index 2f7e554..0505666 100644 ---- a/src/cdf.h -+++ b/src/cdf.h -@@ -48,6 +48,7 @@ - typedef int32_t cdf_secid_t; - - #define CDF_LOOP_LIMIT 10000 -+#define CDF_ELEMENT_LIMIT 100000 - - #define CDF_SECID_NULL 0 - #define CDF_SECID_FREE -1 --- -2.20.1 - diff --git a/SOURCES/file-5.37-jffs-magic.patch b/SOURCES/file-5.37-jffs-magic.patch deleted file mode 100644 index 1c25151..0000000 --- a/SOURCES/file-5.37-jffs-magic.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 432267e707aca36bec55704fd404fa572e2c4b45 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Fri, 15 Nov 2019 23:49:38 +0000 -Subject: [PATCH] fix JFFS2 (the old magic was just hex encoded 0x1984 which is - wrong (Kamil Dudka) - -Upstream-commit: 5ad78c726bb03e0fbdb6d237ef2b13e51968ffea -Signed-off-by: Kamil Dudka ---- - magic/Magdir/filesystems | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/magic/Magdir/filesystems b/magic/Magdir/filesystems -index 1920e56..da5c580 100644 ---- a/magic/Magdir/filesystems -+++ b/magic/Magdir/filesystems -@@ -2057,10 +2057,6 @@ - >0x10040 lelong 2 yura hash - >0x10040 lelong 3 r5 hash - --# JFFS - russell@coker.com.au --0 lelong 0x34383931 Linux Journalled Flash File system, little endian --0 belong 0x34383931 Linux Journalled Flash File system, big endian -- - # EST flat binary format (which isn't, but anyway) - # From: Mark Brown - 0 string ESTFBINR EST flat binary -@@ -2144,7 +2140,9 @@ - - # JFFS2 file system - 0 leshort 0x1984 Linux old jffs2 filesystem data little endian -+0 beshort 0x1984 Linux old jffs2 filesystem data big endian - 0 leshort 0x1985 Linux jffs2 filesystem data little endian -+0 beshort 0x1985 Linux jffs2 filesystem data big endian - - # Squashfs - 0 string sqsh Squashfs filesystem, big endian, --- -2.20.1 - diff --git a/SOURCES/file-5.41-python-magic-threads.patch b/SOURCES/file-5.41-python-magic-threads.patch deleted file mode 100644 index 9636840..0000000 --- a/SOURCES/file-5.41-python-magic-threads.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff --git a/python/magic.py b/python/magic.py -index 662569e..2be58cd 100644 ---- a/python/magic.py -+++ b/python/magic.py -@@ -5,6 +5,7 @@ Python bindings for libmagic - ''' - - import ctypes -+import threading - - from collections import namedtuple - -@@ -241,11 +242,25 @@ def open(flags): - - - # Objects used by `detect_from_` functions --mime_magic = Magic(_open(MAGIC_MIME)) --mime_magic.load() --none_magic = Magic(_open(MAGIC_NONE)) --none_magic.load() -- -+class MagicDetect(object): -+ def __init__(self): -+ self.mime_magic = Magic(_open(MAGIC_MIME)) -+ self.mime_magic.load() -+ self.none_magic = Magic(_open(MAGIC_NONE)) -+ self.none_magic.load() -+ -+ def __del__(self): -+ self.mime_magic.close() -+ self.none_magic.close() -+ -+threadlocal = threading.local() -+ -+def _detect_make(): -+ v = getattr(threadlocal, "magic_instance", None) -+ if v is None: -+ v = MagicDetect() -+ setattr(threadlocal, "magic_instance", v) -+ return v - - def _create_filemagic(mime_detected, type_detected): - mime_type, mime_encoding = mime_detected.split('; ') -@@ -259,9 +274,9 @@ def detect_from_filename(filename): - - Returns a `FileMagic` namedtuple. - ''' -- -- return _create_filemagic(mime_magic.file(filename), -- none_magic.file(filename)) -+ x = _detect_make() -+ return _create_filemagic(x.mime_magic.file(filename), -+ x.none_magic.file(filename)) - - - def detect_from_fobj(fobj): -@@ -271,8 +286,9 @@ def detect_from_fobj(fobj): - ''' - - file_descriptor = fobj.fileno() -- return _create_filemagic(mime_magic.descriptor(file_descriptor), -- none_magic.descriptor(file_descriptor)) -+ x = _detect_make() -+ return _create_filemagic(x.mime_magic.descriptor(file_descriptor), -+ x.none_magic.descriptor(file_descriptor)) - - - def detect_from_content(byte_content): -@@ -281,5 +297,6 @@ def detect_from_content(byte_content): - Returns a `FileMagic` namedtuple. - ''' - -- return _create_filemagic(mime_magic.buffer(byte_content), -- none_magic.buffer(byte_content)) -+ x = _detect_make() -+ return _create_filemagic(x.mime_magic.buffer(byte_content), -+ x.none_magic.buffer(byte_content)) diff --git a/SOURCES/file-magic-filesystems.patch b/SOURCES/file-magic-filesystems.patch deleted file mode 100644 index 5f87ceb..0000000 --- a/SOURCES/file-magic-filesystems.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/magic/Magdir/filesystems b/magic/Magdir/filesystems -index eb41868f..44805a35 100644 ---- a/magic/Magdir/filesystems -+++ b/magic/Magdir/filesystems -@@ -1973,7 +1973,7 @@ - # 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 - # to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51) --!:strength +34 -+!:strength +35 - >0 use cdrom - - # URL: https://en.wikipedia.org/wiki/NRG_(file_format) diff --git a/christoskey.asc b/christoskey.asc new file mode 100644 index 0000000..a728fe6 --- /dev/null +++ b/christoskey.asc @@ -0,0 +1,79 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +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 +=XrDo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/file-4.17-rpm-name.patch b/file-4.17-rpm-name.patch similarity index 100% rename from SOURCES/file-4.17-rpm-name.patch rename to file-4.17-rpm-name.patch diff --git a/SOURCES/file-5.04-volume_key.patch b/file-5.04-volume_key.patch similarity index 100% rename from SOURCES/file-5.04-volume_key.patch rename to file-5.04-volume_key.patch diff --git a/file-5.45-readelf-limit-revert.patch b/file-5.45-readelf-limit-revert.patch new file mode 100644 index 0000000..23f20cc --- /dev/null +++ b/file-5.45-readelf-limit-revert.patch @@ -0,0 +1,103 @@ +diff --git a/doc/file.man b/doc/file.man +index bf78c0c..a0a363c 100644 +--- a/doc/file.man ++++ b/doc/file.man +@@ -340,12 +340,12 @@ never read them. + .It Fl P , Fl Fl parameter Ar name=value + Set various parameter limits. + .Bl -column "elf_phnum" "Default" "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ++.Bl -column "elf_phnum" "Default" "XXXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent + .It Sy "Name" Ta Sy "Default" Ta Sy "Explanation" + .It Li bytes Ta 1M Ta max number of bytes to read from file + .It Li elf_notes Ta 256 Ta max ELF notes processed + .It Li elf_phnum Ta 2K Ta max ELF program sections processed + .It Li elf_shnum Ta 32K Ta max ELF sections processed +-.It Li elf_shsize Ta 128MB Ta max ELF section size processed + .It Li encoding Ta 65K Ta max number of bytes to determine encoding + .It Li indir Ta 50 Ta recursion limit for indirect magic + .It Li name Ta 50 Ta use count limit for name/use magic +diff --git a/src/apprentice.c b/src/apprentice.c +index 7907841..1d862df 100644 +--- a/src/apprentice.c ++++ b/src/apprentice.c +@@ -577,7 +577,6 @@ file_ms_alloc(int flags) + ms->indir_max = FILE_INDIR_MAX; + ms->name_max = FILE_NAME_MAX; + ms->elf_shnum_max = FILE_ELF_SHNUM_MAX; +- ms->elf_shsize_max = FILE_ELF_SHSIZE_MAX; + ms->elf_phnum_max = FILE_ELF_PHNUM_MAX; + ms->elf_notes_max = FILE_ELF_NOTES_MAX; + ms->regex_max = FILE_REGEX_MAX; +diff --git a/src/file.c b/src/file.c +index 31c1035..4fa275c 100644 +--- a/src/file.c ++++ b/src/file.c +@@ -156,8 +156,6 @@ file_private struct { + MAGIC_PARAM_ELF_PHNUM_MAX, 0 }, + { "elf_shnum", 0, FILE_ELF_SHNUM_MAX, "max ELF sections processed", + MAGIC_PARAM_ELF_SHNUM_MAX, 0 }, +- { "elf_shsize", 0, FILE_ELF_SHSIZE_MAX, "max ELF section size", +- MAGIC_PARAM_ELF_SHSIZE_MAX, 0 }, + { "encoding", 0, FILE_ENCODING_MAX, "max bytes to scan for encoding", + MAGIC_PARAM_ENCODING_MAX, 0 }, + { "indir", 0, FILE_INDIR_MAX, "recursion limit for indirection", +diff --git a/src/file.h b/src/file.h +index 78f574e..049ef3c 100644 +--- a/src/file.h ++++ b/src/file.h +@@ -492,14 +492,12 @@ struct magic_set { + uint16_t regex_max; + size_t bytes_max; /* number of bytes to read from file */ + size_t encoding_max; /* bytes to look for encoding */ +- size_t elf_shsize_max; + #ifndef FILE_BYTES_MAX + # define FILE_BYTES_MAX (7 * 1024 * 1024)/* how much of the file to look at */ + #endif /* above 0x6ab0f4 map offset for HelveticaNeue.dfont */ + #define FILE_ELF_NOTES_MAX 256 + #define FILE_ELF_PHNUM_MAX 2048 + #define FILE_ELF_SHNUM_MAX 32768 +-#define FILE_ELF_SHSIZE_MAX (128 * 1024 * 1024) + #define FILE_INDIR_MAX 50 + #define FILE_NAME_MAX 50 + #define FILE_REGEX_MAX 8192 +diff --git a/src/magic.c b/src/magic.c +index 052f997..5084dcc 100644 +--- a/src/magic.c ++++ b/src/magic.c +@@ -625,9 +625,6 @@ magic_setparam(struct magic_set *ms, int param, const void *val) + case MAGIC_PARAM_ELF_SHNUM_MAX: + ms->elf_shnum_max = CAST(uint16_t, *CAST(const size_t *, val)); + return 0; +- case MAGIC_PARAM_ELF_SHSIZE_MAX: +- ms->elf_shsize_max = *CAST(const size_t *, val); +- return 0; + case MAGIC_PARAM_ELF_NOTES_MAX: + ms->elf_notes_max = CAST(uint16_t, *CAST(const size_t *, val)); + return 0; +@@ -664,9 +661,6 @@ magic_getparam(struct magic_set *ms, int param, void *val) + case MAGIC_PARAM_ELF_SHNUM_MAX: + *CAST(size_t *, val) = ms->elf_shnum_max; + return 0; +- case MAGIC_PARAM_ELF_SHSIZE_MAX: +- *CAST(size_t *, val) = ms->elf_shsize_max; +- return 0; + case MAGIC_PARAM_ELF_NOTES_MAX: + *CAST(size_t *, val) = ms->elf_notes_max; + return 0; +diff --git a/src/readelf.c b/src/readelf.c +index a2a66dd..71c0ad1 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -1450,12 +1450,6 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, + return -1; + return 0; + } +- if (xsh_size > ms->elf_shsize_max) { +- file_error(ms, errno, "Note section size too " +- "big (%ju > %zu)", (uintmax_t)xsh_size, +- ms->elf_shsize_max); +- return -1; +- } + if ((nbuf = malloc(xsh_size)) == NULL) { + file_error(ms, errno, "Cannot allocate memory" + " for note"); diff --git a/file-5.45-time-t.patch b/file-5.45-time-t.patch new file mode 100644 index 0000000..bb5ebc0 --- /dev/null +++ b/file-5.45-time-t.patch @@ -0,0 +1,36 @@ +From 218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Fri, 28 Jul 2023 14:38:25 +0000 +Subject: [PATCH] deal with 32 bit time_t + +--- + src/file.h | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/file.h b/src/file.h +index 2e0494d2f..78f574ea1 100644 +--- a/src/file.h ++++ b/src/file.h +@@ -27,7 +27,7 @@ + */ + /* + * file.h - definitions for file(1) program +- * @(#)$File: file.h,v 1.247 2023/07/27 19:40:22 christos Exp $ ++ * @(#)$File: file.h,v 1.248 2023/07/28 14:38:25 christos Exp $ + */ + + #ifndef __file_h__ +@@ -159,9 +159,11 @@ + /* + * Dec 31, 23:59:59 9999 + * we need to make sure that we don't exceed 9999 because some libc +- * implementations like muslc crash otherwise ++ * implementations like muslc crash otherwise. If you are unlucky ++ * to be running on a system with a 32 bit time_t, then it is even less. + */ +-#define MAX_CTIME CAST(time_t, 0x3afff487cfULL) ++#define MAX_CTIME \ ++ CAST(time_t, sizeof(time_t) > 4 ? 0x3afff487cfULL : 0x7fffffffULL) + + #define FILE_BADSIZE CAST(size_t, ~0ul) + #define MAXDESC 64 /* max len of text description/MIME type */ diff --git a/file-5.45.tar.gz.asc b/file-5.45.tar.gz.asc new file mode 100644 index 0000000..5e385a6 --- /dev/null +++ b/file-5.45.tar.gz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iEYEABECAAYFAmTCz2IACgkQcREqsWyzOzpvCgCcDRR1icCs3FF4dXiIXCS3mykf +T5wAoI4+RrEesZEWRBl641Z1lshkK+4c +=bF1Y +-----END PGP SIGNATURE----- diff --git a/SOURCES/file-localmagic.patch b/file-localmagic.patch similarity index 62% rename from SOURCES/file-localmagic.patch rename to file-localmagic.patch index d0d5350..1b73d13 100644 --- a/SOURCES/file-localmagic.patch +++ b/file-localmagic.patch @@ -1,30 +1,27 @@ -From f25107f625e88726e8ae9d4963573b5a0dda8f4c Mon Sep 17 00:00:00 2001 -From: Jan Kaluza -Date: Thu, 15 Dec 2011 16:15:41 +0100 -Subject: [PATCH] file-localmagic.patch +From 82bed46bc78089656a28c4daca0901f7b3f409a7 Mon Sep 17 00:00:00 2001 +From: Siteshwar Vashisht +Date: Thu, 21 Feb 2019 15:26:38 +0100 +Subject: [PATCH] Upstream says it's up to distributions to add a way to + support local-magic. -Upstream says it's up to distributions to add a way to support local-magic. - -Signed-off-by: Kamil Dudka --- - magic/magic.local | 3 +++ + magic/magic.local | 2 ++ src/Makefile.am | 2 +- src/Makefile.in | 2 +- src/apprentice.c | 2 +- - 4 files changed, 6 insertions(+), 3 deletions(-) + 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 magic/magic.local diff --git a/magic/magic.local b/magic/magic.local new file mode 100644 -index 0000000..283a863 +index 0000000..33580e4 --- /dev/null +++ b/magic/magic.local -@@ -0,0 +1,3 @@ +@@ -0,0 +1,2 @@ +# Magic local data for file(1) command. +# Insert here your local magic data. Format is described in magic(5). -+ diff --git a/src/Makefile.am b/src/Makefile.am -index 155aec4..0f22539 100644 +index 96749b5..e3eaf36 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ @@ -34,10 +31,10 @@ index 155aec4..0f22539 100644 nodist_include_HEADERS = magic.h diff --git a/src/Makefile.in b/src/Makefile.in -index b6eeb20..78dce55 100644 +index 155034b..151e4a4 100644 --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -337,7 +337,7 @@ target_alias = @target_alias@ +@@ -357,7 +357,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @@ -47,18 +44,18 @@ index b6eeb20..78dce55 100644 nodist_include_HEADERS = magic.h AM_CPPFLAGS = -DMAGIC='"$(MAGIC)"' diff --git a/src/apprentice.c b/src/apprentice.c -index e395854..ecc1214 100644 +index db21787..5134682 100644 --- a/src/apprentice.c +++ b/src/apprentice.c -@@ -454,7 +454,7 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) - if (map == (struct magic_map *)-1) - return -1; +@@ -496,7 +496,7 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) + #ifndef COMPILE_ONLY + map = apprentice_map(ms, fn); if (map == NULL) { - if (ms->flags & MAGIC_CHECK) + if (ms->flags & MAGIC_CHECK && strcmp("/etc/magic", fn) != 0) - file_magwarn(ms, "using regular magic file `%s'", fn); + file_magwarn(NULL, "using regular magic file `%s'", fn); map = apprentice_load(ms, fn, action); if (map == NULL) -- -2.5.5 +2.39.0 diff --git a/SPECS/file.spec b/file.spec similarity index 77% rename from SPECS/file.spec rename to file.spec index 3eb7468..75414b9 100644 --- a/SPECS/file.spec +++ b/file.spec @@ -5,20 +5,34 @@ %bcond_with python3 %endif -# python2 is not available on RHEL > 7 and not needed on Fedora > 29 -%if 0%{?rhel} > 7 || 0%{?fedora} > 29 +# python2 is not available on RHEL > 7 +%if 0%{?fedora} > 31 || 0%{?rhel} > 7 %bcond_with python2 %else %bcond_without python2 %endif -Summary: A utility for determining file types +Summary: Utility for determining file types Name: file -Version: 5.33 -Release: 26%{?dist} -License: BSD -Group: Applications/File -Source0: ftp://ftp.astron.com/pub/file/file-%{version}.tar.gz +Version: 5.45 +Release: 7%{?dist} + +# Main license is BSD-2-Clause-Darwin +# Shipped exceptions: +# * some src/*.{c.h} - BSD-2-Clause +# Not shipped in Fedora: +# * src/mygetopt.h - BSD-4-Clause +# * src/strcasestr.h - BSD-3-Clause +# * src/strlc{at,py}.c - ISC +# * src/vasprintf.c - BSD-2-Clause-Darwin AND BSD-3-Clause +License: BSD-2-Clause-Darwin AND BSD-2-Clause + +Source0: http://ftp.astron.com/pub/file/file-%{version}.tar.gz +Source1: http://ftp.astron.com/pub/file/file-%{version}.tar.gz.asc + +# gpg --keyserver hkp://keys.gnupg.net --recv-keys BE04995BA8F90ED0C0C176C471112AB16CB33B3A +# gpg --output christoskey.asc --armor --export christos@zoulas.com +Source2: christoskey.asc # Upstream says it's up to distributions to add a way to support local-magic. Patch0: file-localmagic.patch @@ -27,93 +41,22 @@ Patch0: file-localmagic.patch Patch1: file-4.17-rpm-name.patch Patch2: file-5.04-volume_key.patch -# picked from upstream -Patch3: file-5.33-gif.patch -Patch4: file-5.33-seccomp.patch +# revert upstream commits (rhbz#2167964) +# 1. https://github.com/file/file/commit/e1233247bbe4d2d66b891224336a23384a93cce1 +# 2. https://github.com/file/file/commit/f7a65dbf1739a8f8671621e41c5648d1f7e9f6ae +Patch3: file-5.45-readelf-limit-revert.patch -# do not classify shared libraries as pie executables (#1581343) -Patch5: file-5.33-pie-executable-revert.patch +# upstream commit: https://github.com/file/file/commit/218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1 +Patch4: file-5.45-time-t.patch -# fix out-of-bounds read via a crafted ELF file (CVE-2018-10360) -Patch6: file-5.33-CVE-2018-10360.patch - -# support longer version strings for clamav database (#1539107) -Patch7: file-5.33-clamav.patch - -# show details about ppc swap partition (#1224668) -Patch8: file-5.33-ppc-swap.patch - -# fix memory leak on an error path (#1602492) -Patch9: file-5.33-covscan.patch - -# add magic for eBPF objects (#1648667) -Patch10: file-5.34-ebpf-magic.patch - -# make netpbm beat DOS/MBR magic again (#1658158) -Patch11: file-5.35-netpbm.patch - -# improve parsing of ppc core files (#1658171) -Patch12: file-5.35-ppc-core.patch - -# improve documentation of --apple in file(1) man page (#1677442) -Patch13: file-5.35-man-apple.patch - -# remove wrong magic for JFFS file system (#1773477) -Patch14: file-5.37-jffs-magic.patch - -# increase CDROM strength to beat MBR (#1696798) -Patch15: file-magic-filesystems.patch - -# search deeper in the zip file (#1845169) -Patch16: file-5.33-msooxml-magic.patch - -# when ignoring whitespace compare up to the length of the string -Patch17: file-5.33-whitespace-compare.patch - -# Use \040 to make space clearer -Patch18: file-5.33-python-space.patch - -# Pass an upper bound to file_strncmp (string is not always NULL) -Patch19: file-5.33-bound-file_strncmp.patch - -# improve magic for python scripts -Patch20: file-5.33-more-python.patch - -# improve magic for Shell, Gnome Javascript and TCL scripts -Patch21: file-5.33-other-languages.patch - -# fix heap-based buffer overflow in cdf_read_property_info() (CVE-2019-18218) -Patch22: file-5.37-CVE-2019-18218.patch - -# not yet upstream (#2095828) -Patch23: file-5.33-fix-compression.patch - -# upstream commit: 709dfecf25c2eb2822f7e0b8c30d6329cd2d97fb (#2061557) -Patch24: file-5.33-floating-point-exception.patch - -# upstream commit: e2adab1456c2bd8b005ddf8ed71540a37d05cb08 (#2071581) -Patch25: file-5.33-static-PIE-binaries-0.patch -# upstream commit: 9109a696f3289ba00eaa222fd432755ec4287e28 (#2071581) -Patch26: file-5.33-static-PIE-binaries-1.patch -# upstream commit: 9ffbd485ba4647827c4bdacf3a2de690f6765b0c (#2071581) -Patch27: file-5.33-static-PIE-binaries-2.patch -# upstream commit: 03084b161cf888b5286dbbcd964c31ccad4f64d9 (#2071581) -Patch28: file-5.33-static-PIE-binaries-3.patch -# upstream commit: 363d7fcf703ad3ebf37b45693b2c9e43eb8b4176 (#2071581) -Patch29: file-5.33-static-PIE-binaries-4.patch -# upstream commit: 9c3137904e59d68debb97fceaced46a691ba241a (#2071581) -Patch30: file-5.33-static-PIE-binaries-5.patch - -# https://github.com/file/file/commit/39e43a669d1260f0df36f0b2e78b3012ffd5f086 (#2158115) -Patch31: file-5.33-thermocam-magic.patch - -# Upstream commit c8deb32eab1089d1841482fb2e91833f114b6712 (#13737) -Patch32: file-5.41-python-magic-threads.patch - -URL: http://www.darwinsys.com/file/ -Requires: file-libs = %{version}-%{release} +URL: https://www.darwinsys.com/file/ +Requires: file-libs%{?_isa} = %{version}-%{release} BuildRequires: zlib-devel -BuildRequires: autoconf automake libtool +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: make +BuildRequires: gnupg2 %description The file command is used to identify a particular file according to the @@ -123,8 +66,6 @@ different graphics formats. %package libs Summary: Libraries for applications using libmagic -Group: Applications/File -License: BSD %description libs @@ -132,24 +73,26 @@ Libraries for applications using libmagic. %package devel Summary: Libraries and header files for file development -Group: Applications/File -Requires: %{name} = %{version}-%{release} Requires: file-libs%{?_isa} = %{version}-%{release} %description devel The file-devel package contains the header files and libmagic library necessary for developing programs using libmagic. +%package static +Summary: Static library for file development +Requires: file-devel = %{version}-%{release} + +%description static +The file-static package contains the static version of the libmagic library. + %if %{with python2} %package -n python2-magic Summary: Python 2 bindings for the libmagic API -Group: Development/Libraries BuildRequires: python2-devel -%if 0%{?rhel} && 0%{?rhel} <= 7 -BuildRequires: python-setuptools -%endif +BuildRequires: python2-setuptools BuildArch: noarch -Requires: %{name} = %{version}-%{release} +Requires: file-libs = %{version}-%{release} %{?python_provide:%python_provide python2-magic} %description -n python2-magic @@ -159,20 +102,24 @@ file(1) command. %endif %if %{with python3} -%package -n python3-magic +%package -n python3-file-magic Summary: Python 3 bindings for the libmagic API -Group: Development/Libraries BuildRequires: python3-devel +BuildRequires: python3-setuptools BuildArch: noarch -Requires: %{name} = %{version}-%{release} +Requires: file-libs = %{version}-%{release} +Provides: python3-magic = %{version}-%{release} +Obsoletes: python3-magic < %{version}-%{release} +Conflicts: python3-magic < %{version}-%{release} -%description -n python3-magic +%description -n python3-file-magic This package contains the Python 3 bindings to allow access to the libmagic API. The libmagic library is also used by the familiar file(1) command. %endif %prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -p1 iconv -f iso-8859-1 -t utf-8 < doc/libmagic.man > doc/libmagic.man_ @@ -189,12 +136,12 @@ cp -a python %{py3dir} autoreconf -fi CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \ -%configure --enable-fsect-man5 --disable-rpath +%configure --enable-fsect-man5 --disable-rpath --enable-static # remove hardcoded library paths from local libtool sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/src/.libs -make %{?_smp_mflags} V=1 +export LD_LIBRARY_PATH=$PWD/src/.libs +%make_build %if %{with python2} cd python CFLAGS="%{optflags}" %{__python2} setup.py build @@ -211,7 +158,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man5 mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/misc mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/file -make DESTDIR=${RPM_BUILD_ROOT} install +%make_install rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la # local magic in /etc/magic @@ -234,18 +181,20 @@ cd %{py3dir} %ldconfig_scriptlets libs +%check +export LD_LIBRARY_PATH=$PWD/src/.libs +make -C tests check + %files -%{!?_licensedir:%global license %%doc} %license COPYING -%doc ChangeLog README +%doc ChangeLog %{_bindir}/* %{_mandir}/man1/* %config(noreplace) %{_sysconfdir}/magic %files libs -%{!?_licensedir:%global license %%doc} %license COPYING -%doc ChangeLog README +%doc ChangeLog %{_libdir}/*so.* %{_datadir}/magic* %{_mandir}/man5/* @@ -256,12 +205,15 @@ cd %{py3dir} %{_libdir}/*.so %{_includedir}/magic.h %{_mandir}/man3/* +%{_libdir}/pkgconfig/libmagic.pc + +%files static +%{_libdir}/libmagic.a %if %{with python2} %files -n python2-magic -%{!?_licensedir:%global license %%doc} %license COPYING -%doc python/README python/example.py +%doc python/README.md python/example.py %{python2_sitelib}/magic.py %{python2_sitelib}/magic.pyc %{python2_sitelib}/magic.pyo @@ -271,78 +223,234 @@ cd %{py3dir} %endif %if %{with python3} -%files -n python3-magic -%{!?_licensedir:%global license %%doc} +%files -n python3-file-magic %license COPYING -%doc python/README python/example.py +%doc python/README.md python/example.py %{python3_sitelib}/magic.py %{python3_sitelib}/*egg-info %{python3_sitelib}/__pycache__/* %endif %changelog -* Thu Oct 12 2023 Vincent Mihalkovic - 5.33-26 -- Fix segfault in python3-file-magic concurrent method calls (#13737) +* Tue Oct 29 2024 Troy Dawson - 5.45-7 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Thu Apr 20 2023 Vincent Mihalkovic - 5.33-25 -- Improve thermocam magic (rhbz#2158115) +* Mon Jun 24 2024 Troy Dawson - 5.45-6 +- Bump release for June 2024 mass rebuild -* Wed Feb 22 2023 Vincent Mihalkovic - 5.33-24 -- fix detection of static-pie binaries (#2071581) +* Thu Feb 14 2024 Vincent Mihalkovic - 5.45-5 + - fix license of the file-libs subpackage -* Wed Feb 01 2023 Vincent Mihalkovic - 5.33-23 -- fix detection of static-pie binaries (#2071581) +* Tue Feb 06 2024 Lukáš Zaoral - 5.45-4 +- migrate to SPDX license format -* Tue Jan 31 2023 Vincent Mihalkovic - 5.33-22 -- fix issue with libmagic and floating point exceptions (#2061557) +* Wed Jan 24 2024 Fedora Release Engineering - 5.45-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Aug 17 2022 Vincent Mihalkovic - 5.33-21 -- fix recognition (src/compress.c) of compressed empty files (#2095828) +* Fri Jan 19 2024 Fedora Release Engineering - 5.45-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Tue May 04 2021 Vincent Mihalkovic - 5.33-20 -- rebuild (#1954434) +* Mon Jul 31 2023 Vincent Mihalkovic - 5.45-1 +- new upstream release 5.45 -* Wed Apr 14 2021 Vincent Mihalkovic - 5.33-18 +* Wed Jul 19 2023 Fedora Release Engineering - 5.44-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 5.44-4 +- Rebuilt for Python 3.12 + +* Wed Mar 01 2023 Vincent Mihalkovic - 5.44-3 +- Remove the size limit check of the elf note section (rhbz#2167964) + +* Thu Feb 09 2023 Vincent Mihalkovic - 5.44-2 +- Fix the size limit of the elf note section (rhbz#2167964) + Test written by lzaoral, thanks! + +* Fri Jan 20 2023 Vincent Mihalkovic - 5.44-1 +- update to new version 5.44 + +* Thu Jan 19 2023 Fedora Release Engineering - 5.42-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jul 26 2022 Florian Weimer - 5.42-4 +- Fix use-after-free with large file -f list (#2110622) + +* Mon Jul 25 2022 Vincent Mihalkovic - 5.42-3 +- bump release to 5.42-3 + +* Thu Jul 21 2022 Vincent Mihalkovic - 5.42-1 +- update to new version 5.42 + +* Thu Jul 21 2022 Fedora Release Engineering - 5.41-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 5.41-6 +- Rebuilt for Python 3.11 + +* Wed Mar 02 2022 Vincent Mihalkovic - 5.41-5 +- gpgverify source tarball + +* Thu Jan 20 2022 Fedora Release Engineering - 5.41-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Dec 14 2021 Vincent Mihalkovic - 5.41-3 +- change the identification for JSON files (#2020715) + +* Wed Dec 08 2021 Vincent Mihalkovic - 5.41-2 +- fix the JavaScript detection (#2029975) + +* Tue Oct 19 2021 Vincent Mihalkovic - 5.41-1 +- update to new version 5.41 + +* Wed Jul 21 2021 Fedora Release Engineering - 5.40-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 08 2021 Vincent Mihalkovic - 5.40-8 +- do not classify python bytecode files as text (#1963895) + +* Thu Jun 03 2021 Python Maint - 5.40-7 +- Rebuilt for Python 3.10 + +* Wed Apr 28 2021 Vincent Mihalkovic - 5.40-6 +- enable the upstream test suite + +* Mon Apr 26 2021 Vincent Mihalkovic - 5.40-5 +- fix printing ext4 filesystem UUIDs (#1945122) + +* Mon Apr 19 2021 Stephen Gallagher - 5.40-4 +- Restore the xz commit with the upstream fix (#1947317) + +* Mon Apr 12 2021 Vincent Mihalkovic - 5.40-3 +- revert the https://github.com/file/file/commit/3ebd747d commit (#1947317) + +* Thu Apr 08 2021 Vincent Mihalkovic - 5.40-2 +- make python{2,3}-magic depend on file-libs (#1947453) + +* Wed Mar 31 2021 Vincent Mihalkovic - 5.40-1 +- update to new version 5.40 + +* Tue Jan 26 2021 Fedora Release Engineering - 5.39-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 16 2020 Vincent Mihalkovic - 5.39-4 +- Fix close_on_exec multithreaded decompression issue (#1906751) + +* Mon Jul 27 2020 Fedora Release Engineering - 5.39-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 24 2020 Vincent Mihalkovic - 5.39-2 +- BuildRequires: python3-setuptools + +* Tue Jun 16 2020 Vincent Mihalkovic - 5.39-1 +- update to new version 5.39 + +* Wed May 27 2020 Miro Hrončok - 5.38-6 +- Rebuilt for Python 3.9 + +* Tue May 26 2020 Vincent Mihalkovič - 5.38-5 +- increase CDROM strength to beat MBR (#1696798) + +* Sat May 23 2020 Miro Hrončok - 5.38-4 +- Rebuilt for Python 3.9 + +* Wed Mar 11 2020 Vincent Mihalkovič - 5.38-3 +- use python3-file-magic instead of python3-magic (#1793689) + +* Tue Jan 28 2020 Fedora Release Engineering - 5.38-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 17 2019 Kamil Dudka - 5.38-1 +- update to new version 5.38 + +* Mon Nov 18 2019 Kamil Dudka - 5.37-9 +- remove wrong magic for JFFS file system (#1771242) + +* Fri Oct 25 2019 Kamil Dudka - 5.37-8 - fix heap-based buffer overflow in cdf_read_property_info() (CVE-2019-18218) -* Thu Jan 21 2021 Vincent Mihalkovic - 5.33-17 -- improve magic for script recognition and other changes (#1903531) +* Mon Oct 14 2019 Kamil Dudka - 5.37-7 +- remove the python2-magic subpackage on f32+ (#1761223) -* Mon Jun 22 2020 Vincent Mihalkovic - 5.33-16 -- magic/Magdir/msooxml: Search deeper in the zip file (#1845169) +* Fri Oct 04 2019 Kamil Dudka - 5.37-6 +- always install python2-setuptools if python2 is enabled -* Fri May 22 2020 Kamil Dudka - 5.33-15 -- remove duplicate line in file(1) man page (#1677442) +* Thu Oct 03 2019 Miro Hrončok - 5.37-5 +- Rebuilt for Python 3.8.0rc1 (#1748018) -* Thu May 21 2020 Vincent Mihalkovič - 5.33-14 -- increase magic/Magdir/filesystems CDROM strength to beat MBR (#1696798) +* Fri Aug 16 2019 Miro Hrončok - 5.37-4 +- Rebuilt for Python 3.8 -* Mon Nov 18 2019 Kamil Dudka - 5.33-13 -- remove wrong magic for JFFS file system (#1773477) +* Thu Jul 25 2019 Fedora Release Engineering - 5.37-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild -* Tue Oct 15 2019 Kamil Dudka - 5.33-12 -- restore missing comma in the output for core files (#1658171) +* Tue Jun 11 2019 Kamil Dudka - 5.37-2 +- fix double free on read error (#1685217) -* Tue Oct 15 2019 Kamil Dudka - 5.33-11 -- improve documentation of --apple in file(1) man page (#1677442) -- improve parsing of ppc core files (#1658171) +* Fri May 17 2019 Kamil Dudka - 5.37-1 +- update to new version 5.37 -* Mon Oct 14 2019 Kamil Dudka - 5.33-10 -- make netpbm beat DOS/MBR magic again (#1658158) +* Fri Mar 01 2019 Kamil Dudka - 5.36-2 +- improve support for Apple formats (#1679455) -* Wed Jul 03 2019 Kamil Dudka - 5.33-9 -- add magic for eBPF objects (#1652993) +* Thu Feb 21 2019 Siteshwar Vashisht - 5.36-1 +- update to new version 5.36, which fixes the following vulnerabilities: + CVE-2019-8907 - remote denial of service in do_core_note in readelf.c + CVE-2019-8905 - stack-based buffer over-read in do_core_note in readelf.c + CVE-2019-8904 - stack-based buffer over-read in do_bid_note in readelf.c + CVE-2019-8906 - out-of-bounds read in do_core_note in readelf.c -* Mon Nov 05 2018 Kamil Dudka - 5.33-8 -- fix memory leak on an error path (#1602492) +* Thu Jan 31 2019 Fedora Release Engineering - 5.35-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild -* Tue Jul 17 2018 Kamil Dudka - 5.33-7 +* Thu Jan 24 2019 Ondrej Dubaj - 5.35-4 +- Added Linux PowerPC core offsets for Linux + fixed bug #1161911 + +* Thu Jan 24 2019 Ondrej Dubaj - 5.35-3 +- Fixed bug missidentifying netpbm files (#856092) + +* Tue Dec 04 2018 Ondrej Dubaj - 5.35-2 +- Fixed bug misleading qcow2 v2 and v3 files (#1654349) + +* Tue Dec 04 2018 Kamil Dudka - 5.35-1 +- update to new version 5.35 + +* Wed Nov 21 2018 Ondrej Dubaj - 5.34-6 +- Fixed missidentifying locale files bug (#1527398) + +* Wed Nov 14 2018 Kamil Dudka - 5.34-5 +- reintroduce the python2-magic subpackage needed by python2-bugzilla (#1649547) + +* Mon Nov 12 2018 Kamil Dudka - 5.34-4 +- add magic for eBPF objects (#1648667) + +* Tue Jul 31 2018 Florian Weimer - 5.34-3 +- Rebuild with fixed binutils + +* Fri Jul 27 2018 Igor Gnatenko - 5.34-2 +- Rebuild for new binutils + +* Wed Jul 25 2018 Kamil Dudka - 5.34-1 +- update to new version 5.34 + +* Tue Jul 17 2018 Kamil Dudka - 5.33-10 - show details about ppc swap partition (#1224668) - support longer version strings for clamav database (#1539107) -* Wed Jun 13 2018 Kamil Dudka - 5.33-6 +* Fri Jul 13 2018 Fedora Release Engineering - 5.33-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sun Jun 17 2018 Miro Hrončok - 5.33-8 +- Rebuilt for Python 3.7 + +* Wed Jun 13 2018 Kamil Dudka - 5.33-7 - fix out-of-bounds read via a crafted ELF file (CVE-2018-10360) +* Mon May 28 2018 Kamil Dudka - 5.33-6 +- make file-devel depend on file-libs, instead of file +- reintroduce file-static subpackage (#1575661) +- drop obsolete Group tag + * Thu May 24 2018 Kamil Dudka - 5.33-5 - do not classify shared libraries as pie executables in MIME output (#1581343) diff --git a/sources b/sources new file mode 100644 index 0000000..beb48de --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (file-5.45.tar.gz) = 12611a59ff766c22a55db4b4a9f80f95a0a2e916a1d8593612c6ead32c247102a8fdc23693c6bf81bda9b604d951a62c0051e91580b1b79e190a3504c0efc20a