diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 27124692a00a9..72490d727f500 100644 --- a/ext/fileinfo/libmagic.patch +++ b/ext/fileinfo/libmagic.patch @@ -1,6 +1,6 @@ -diff -ur libmagic.orig/apprentice.c libmagic/apprentice.c ---- libmagic.orig/apprentice.c 2021-02-23 01:51:11.000000000 +0100 -+++ libmagic/apprentice.c 2021-04-06 21:34:57.332978922 +0200 +diff -u libmagic.orig/apprentice.c libmagic/apprentice.c +--- libmagic.orig/apprentice.c 2021-02-23 00:51:11.000000000 +0000 ++++ libmagic/apprentice.c 2022-04-25 16:00:13.974219365 +0100 @@ -29,6 +29,8 @@ * apprentice - make one pass through /etc/magic, learning its secrets. */ @@ -925,9 +925,9 @@ diff -ur libmagic.orig/apprentice.c libmagic/apprentice.c m->str_range = swap4(m->str_range); m->str_flags = swap4(m->str_flags); } -diff -ur libmagic.orig/ascmagic.c libmagic/ascmagic.c ---- libmagic.orig/ascmagic.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/ascmagic.c 2021-04-06 21:34:57.332978922 +0200 +diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c +--- libmagic.orig/ascmagic.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/ascmagic.c 2022-04-25 16:00:13.974219365 +0100 @@ -96,7 +96,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -956,9 +956,9 @@ diff -ur libmagic.orig/ascmagic.c libmagic/ascmagic.c return rv; } -diff -ur libmagic.orig/buffer.c libmagic/buffer.c ---- libmagic.orig/buffer.c 2021-02-23 01:49:26.000000000 +0100 -+++ libmagic/buffer.c 2021-04-06 21:34:57.332978922 +0200 +diff -u libmagic.orig/buffer.c libmagic/buffer.c +--- libmagic.orig/buffer.c 2021-02-23 00:49:26.000000000 +0000 ++++ libmagic/buffer.c 2022-04-15 20:27:23.837624723 +0100 @@ -31,19 +31,23 @@ #endif /* lint */ @@ -1012,9 +1012,9 @@ diff -ur libmagic.orig/buffer.c libmagic/buffer.c b->ebuf = NULL; goto out; } -diff -ur libmagic.orig/cdf.c libmagic/cdf.c ---- libmagic.orig/cdf.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/cdf.c 2021-04-06 21:34:57.332978922 +0200 +diff -u libmagic.orig/cdf.c libmagic/cdf.c +--- libmagic.orig/cdf.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/cdf.c 2022-04-15 20:27:23.837624723 +0100 @@ -43,7 +43,17 @@ #include #endif @@ -1247,9 +1247,9 @@ diff -ur libmagic.orig/cdf.c libmagic/cdf.c } #endif -diff -ur libmagic.orig/cdf.h libmagic/cdf.h ---- libmagic.orig/cdf.h 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/cdf.h 2021-04-06 21:34:57.332978922 +0200 +diff -u libmagic.orig/cdf.h libmagic/cdf.h +--- libmagic.orig/cdf.h 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/cdf.h 2022-04-15 20:27:23.837624723 +0100 @@ -35,10 +35,10 @@ #ifndef _H_CDF_ #define _H_CDF_ @@ -1264,9 +1264,9 @@ diff -ur libmagic.orig/cdf.h libmagic/cdf.h #endif #ifdef __DJGPP__ #define timespec timeval -diff -ur libmagic.orig/cdf_time.c libmagic/cdf_time.c ---- libmagic.orig/cdf_time.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/cdf_time.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c +--- libmagic.orig/cdf_time.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/cdf_time.c 2022-04-15 20:27:23.837624723 +0100 @@ -23,6 +23,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. @@ -1293,9 +1293,9 @@ diff -ur libmagic.orig/cdf_time.c libmagic/cdf_time.c if (ptr != NULL) return buf; (void)snprintf(buf, 26, "*Bad* %#16.16" INT64_T_FORMAT "x\n", -diff -ur libmagic.orig/compress.c libmagic/compress.c ---- libmagic.orig/compress.c 2021-02-23 01:49:07.000000000 +0100 -+++ libmagic/compress.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/compress.c libmagic/compress.c +--- libmagic.orig/compress.c 2021-02-23 00:49:07.000000000 +0000 ++++ libmagic/compress.c 2022-04-25 16:00:13.978219426 +0100 @@ -51,7 +51,7 @@ #ifndef HAVE_SIG_T typedef void (*sig_t)(int); @@ -1430,9 +1430,9 @@ diff -ur libmagic.orig/compress.c libmagic/compress.c } #endif +#endif -diff -ur libmagic.orig/der.c libmagic/der.c ---- libmagic.orig/der.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/der.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/der.c libmagic/der.c +--- libmagic.orig/der.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/der.c 2022-04-25 16:00:13.978219426 +0100 @@ -54,7 +54,9 @@ #include "magic.h" #include "der.h" @@ -1443,9 +1443,9 @@ diff -ur libmagic.orig/der.c libmagic/der.c #include #include #endif -diff -ur libmagic.orig/elfclass.h libmagic/elfclass.h ---- libmagic.orig/elfclass.h 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/elfclass.h 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/elfclass.h libmagic/elfclass.h +--- libmagic.orig/elfclass.h 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/elfclass.h 2022-04-15 20:27:23.837624723 +0100 @@ -41,7 +41,7 @@ return toomany(ms, "program headers", phnum); flags |= FLAGS_IS_CORE; @@ -1473,9 +1473,9 @@ diff -ur libmagic.orig/elfclass.h libmagic/elfclass.h CAST(size_t, elf_getu16(swap, elfhdr.e_shentsize)), fsize, elf_getu16(swap, elfhdr.e_machine), CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)), -diff -ur libmagic.orig/encoding.c libmagic/encoding.c ---- libmagic.orig/encoding.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/encoding.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/encoding.c libmagic/encoding.c +--- libmagic.orig/encoding.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/encoding.c 2022-04-25 16:00:13.978219426 +0100 @@ -98,14 +98,14 @@ nbytes = ms->encoding_max; @@ -1514,9 +1514,9 @@ diff -ur libmagic.orig/encoding.c libmagic/encoding.c } \ if (u < 3) \ return 0; \ -diff -ur libmagic.orig/file.h libmagic/file.h ---- libmagic.orig/file.h 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/file.h 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/file.h libmagic/file.h +--- libmagic.orig/file.h 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/file.h 2022-04-25 16:00:13.978219426 +0100 @@ -33,17 +33,14 @@ #ifndef __file_h__ #define __file_h__ @@ -1775,9 +1775,9 @@ diff -ur libmagic.orig/file.h libmagic/file.h +#endif + #endif /* __file_h__ */ -diff -ur libmagic.orig/fsmagic.c libmagic/fsmagic.c ---- libmagic.orig/fsmagic.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/fsmagic.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c +--- libmagic.orig/fsmagic.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/fsmagic.c 2022-04-15 20:27:23.837624723 +0100 @@ -66,26 +66,10 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -2068,9 +2068,9 @@ diff -ur libmagic.orig/fsmagic.c libmagic/fsmagic.c #ifdef S_IFSOCK #ifndef __COHERENT__ case S_IFSOCK: -diff -ur libmagic.orig/funcs.c libmagic/funcs.c ---- libmagic.orig/funcs.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/funcs.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/funcs.c libmagic/funcs.c +--- libmagic.orig/funcs.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/funcs.c 2022-04-25 16:00:13.978219426 +0100 @@ -51,6 +51,13 @@ #define SIZE_MAX ((size_t)~0) #endif @@ -2388,9 +2388,9 @@ diff -ur libmagic.orig/funcs.c libmagic/funcs.c protected char * file_strtrim(char *str) -diff -ur libmagic.orig/magic.c libmagic/magic.c ---- libmagic.orig/magic.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/magic.c 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/magic.c libmagic/magic.c +--- libmagic.orig/magic.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/magic.c 2022-04-25 16:00:13.978219426 +0100 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -2867,9 +2867,9 @@ diff -ur libmagic.orig/magic.c libmagic/magic.c return NULL; } return file_getbuffer(ms); -diff -ur libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2021-04-06 22:37:37.647426536 +0200 -+++ libmagic/magic.h 2021-04-06 21:34:57.336978894 +0200 +diff -u libmagic.orig/magic.h libmagic/magic.h +--- libmagic.orig/magic.h 2022-04-25 16:01:07.619036406 +0100 ++++ libmagic/magic.h 2022-04-25 16:00:13.978219426 +0100 @@ -126,6 +126,7 @@ const char *magic_getpath(const char *, int); @@ -2878,9 +2878,9 @@ diff -ur libmagic.orig/magic.h libmagic/magic.h const char *magic_descriptor(magic_t, int); const char *magic_buffer(magic_t, const void *, size_t); -diff -ur libmagic.orig/print.c libmagic/print.c ---- libmagic.orig/print.c 2021-02-23 01:49:07.000000000 +0100 -+++ libmagic/print.c 2021-04-06 21:34:57.340978869 +0200 +diff -u libmagic.orig/print.c libmagic/print.c +--- libmagic.orig/print.c 2021-02-23 00:49:07.000000000 +0000 ++++ libmagic/print.c 2022-04-15 20:27:23.837624723 +0100 @@ -28,6 +28,7 @@ /* * print.c - debugging printout routines @@ -2943,9 +2943,9 @@ diff -ur libmagic.orig/print.c libmagic/print.c if (pp == NULL) goto out; -diff -ur libmagic.orig/readcdf.c libmagic/readcdf.c ---- libmagic.orig/readcdf.c 2021-02-23 01:49:08.000000000 +0100 -+++ libmagic/readcdf.c 2021-04-06 21:34:57.340978869 +0200 +diff -u libmagic.orig/readcdf.c libmagic/readcdf.c +--- libmagic.orig/readcdf.c 2021-02-23 00:49:08.000000000 +0000 ++++ libmagic/readcdf.c 2022-04-15 20:27:23.837624723 +0100 @@ -31,7 +31,11 @@ #include @@ -3067,9 +3067,9 @@ diff -ur libmagic.orig/readcdf.c libmagic/readcdf.c out0: /* If we handled it already, return */ if (i != -1) -diff -ur libmagic.orig/softmagic.c libmagic/softmagic.c ---- libmagic.orig/softmagic.c 2021-02-23 01:49:06.000000000 +0100 -+++ libmagic/softmagic.c 2021-04-06 21:34:57.340978869 +0200 +diff -u libmagic.orig/softmagic.c libmagic/softmagic.c +--- libmagic.orig/softmagic.c 2021-02-23 00:49:06.000000000 +0000 ++++ libmagic/softmagic.c 2022-04-25 16:00:30.222464809 +0100 @@ -43,6 +43,10 @@ #include #include "der.h" @@ -3342,7 +3342,32 @@ diff -ur libmagic.orig/softmagic.c libmagic/softmagic.c private int magiccheck(struct magic_set *ms, struct magic *m) { -@@ -2176,65 +2235,77 @@ +@@ -2144,14 +2203,13 @@ + slen = MIN(m->vallen, sizeof(m->value.s)); + l = 0; + v = 0; +-#ifdef HAVE_MEMMEM + if (slen > 0 && m->str_flags == 0) { + const char *found; + idx = m->str_range + slen; + if (m->str_range == 0 || ms->search.s_len < idx) + idx = ms->search.s_len; +- found = CAST(const char *, memmem(ms->search.s, idx, +- m->value.s, slen)); ++ found = CAST(const char *, php_memnstr(ms->search.s, ++ m->value.s, slen, ms->search.s + idx)); + if (!found) + return 0; + idx = found - ms->search.s; +@@ -2159,7 +2217,6 @@ + ms->search.rm_len = ms->search.s_len - idx; + break; + } +-#endif + + for (idx = 0; m->str_range == 0 || idx < m->str_range; idx++) { + if (slen + idx > ms->search.s_len) +@@ -2176,65 +2233,77 @@ break; } case FILE_REGEX: { @@ -3471,9 +3496,9 @@ diff -ur libmagic.orig/softmagic.c libmagic/softmagic.c break; } case FILE_USE: -diff -ur libmagic.orig/strcasestr.c libmagic/strcasestr.c ---- libmagic.orig/strcasestr.c 2021-02-23 01:49:12.000000000 +0100 -+++ libmagic/strcasestr.c 2021-04-06 21:34:57.340978869 +0200 +diff -u libmagic.orig/strcasestr.c libmagic/strcasestr.c +--- libmagic.orig/strcasestr.c 2021-02-23 00:49:12.000000000 +0000 ++++ libmagic/strcasestr.c 2022-04-15 20:27:23.837624723 +0100 @@ -39,6 +39,8 @@ #include "file.h" @@ -3483,7 +3508,3 @@ diff -ur libmagic.orig/strcasestr.c libmagic/strcasestr.c #include #include #include ---- libmagic/config.h 2021-04-06 22:19:57.552120067 +0200 -+++ /dev/null 2021-03-31 20:37:24.776503884 +0200 -@@ -1 +0,0 @@ --#include "php.h" diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index c86524e31e623..24dec583f394a 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -2203,14 +2203,13 @@ magiccheck(struct magic_set *ms, struct magic *m) slen = MIN(m->vallen, sizeof(m->value.s)); l = 0; v = 0; -#ifdef HAVE_MEMMEM if (slen > 0 && m->str_flags == 0) { const char *found; idx = m->str_range + slen; if (m->str_range == 0 || ms->search.s_len < idx) idx = ms->search.s_len; - found = CAST(const char *, memmem(ms->search.s, idx, - m->value.s, slen)); + found = CAST(const char *, php_memnstr(ms->search.s, + m->value.s, slen, ms->search.s + idx)); if (!found) return 0; idx = found - ms->search.s; @@ -2218,7 +2217,6 @@ magiccheck(struct magic_set *ms, struct magic *m) ms->search.rm_len = ms->search.s_len - idx; break; } -#endif for (idx = 0; m->str_range == 0 || idx < m->str_range; idx++) { if (slen + idx > ms->search.s_len)