From: Nikita Popov Date: Thu, 11 Apr 2019 13:12:20 +0000 (+0200) Subject: Add script to generate libmagic.patch X-Git-Tag: php-7.4.0alpha1~549 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f6521659ca9c8dc668ea60d3627a2f1a14cd5773;p=php Add script to generate libmagic.patch --- diff --git a/ext/fileinfo/generate_patch.sh b/ext/fileinfo/generate_patch.sh new file mode 100755 index 0000000000..b7e9a38045 --- /dev/null +++ b/ext/fileinfo/generate_patch.sh @@ -0,0 +1,7 @@ +VERSION=5.33 +if [[ ! -d libmagic.orig ]]; then + mkdir libmagic.orig + wget -O - ftp://ftp.astron.com/pub/file/file-$VERSION.tar.gz \ + | tar -xz --strip-components=2 -C libmagic.orig file-$VERSION/src +fi +diff -u libmagic.orig libmagic | grep -v '^Only in' > libmagic.patch diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 06b3aefc38..7f4e1f6047 100644 --- a/ext/fileinfo/libmagic.patch +++ b/ext/fileinfo/libmagic.patch @@ -1,6 +1,6 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c --- libmagic.orig/apprentice.c 2018-03-11 01:46:42.000000000 +0100 -+++ libmagic/apprentice.c 2018-11-05 00:16:58.812821826 +0100 ++++ libmagic/apprentice.c 2019-03-08 09:31:16.392796494 +0100 @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; @@ -1245,7 +1245,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c switch (m->str_flags & PSTRING_LEN) { diff -u libmagic.orig/apptype.c libmagic/apptype.c --- libmagic.orig/apptype.c 2011-09-07 23:57:15.000000000 +0200 -+++ libmagic/apptype.c 2018-08-10 11:46:29.210671445 +0200 ++++ libmagic/apptype.c 2019-03-08 09:31:16.392796494 +0100 @@ -1,15 +1,15 @@ /* * Adapted from: apptype.c, Written by Eberhard Mattes and put into the @@ -1280,7 +1280,7 @@ diff -u libmagic.orig/apptype.c libmagic/apptype.c #include "file.h" diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c --- libmagic.orig/ascmagic.c 2017-11-02 21:25:39.000000000 +0100 -+++ libmagic/ascmagic.c 2018-08-10 11:46:29.210671445 +0200 ++++ libmagic/ascmagic.c 2019-03-08 09:31:16.392796494 +0100 @@ -90,7 +90,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -1311,7 +1311,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c } diff -u libmagic.orig/buffer.c libmagic/buffer.c --- libmagic.orig/buffer.c 2018-03-11 01:46:42.000000000 +0100 -+++ libmagic/buffer.c 2018-08-10 11:46:29.210671445 +0200 ++++ libmagic/buffer.c 2019-03-08 09:31:16.392796494 +0100 @@ -31,7 +31,11 @@ #endif /* lint */ @@ -1362,7 +1362,7 @@ diff -u libmagic.orig/buffer.c libmagic/buffer.c diff -u libmagic.orig/cdf.c libmagic/cdf.c --- libmagic.orig/cdf.c 2018-03-11 01:46:42.000000000 +0100 -+++ libmagic/cdf.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/cdf.c 2019-03-08 09:31:16.392796494 +0100 @@ -43,7 +43,17 @@ #include #endif @@ -1620,7 +1620,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c #endif diff -u libmagic.orig/cdf.h libmagic/cdf.h --- libmagic.orig/cdf.h 2017-03-09 17:57:17.000000000 +0100 -+++ libmagic/cdf.h 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/cdf.h 2019-03-08 09:31:16.392796494 +0100 @@ -35,10 +35,10 @@ #ifndef _H_CDF_ #define _H_CDF_ @@ -1646,7 +1646,7 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c --- libmagic.orig/cdf_time.c 2017-03-29 17:57:48.000000000 +0200 -+++ libmagic/cdf_time.c 2019-03-08 21:00:46.636733574 +0100 ++++ libmagic/cdf_time.c 2019-03-22 11:57:57.251021738 +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. @@ -1693,7 +1693,7 @@ diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c (void)snprintf(buf, 26, "*Bad* %#16.16" INT64_T_FORMAT "x\n", diff -u libmagic.orig/compress.c libmagic/compress.c --- libmagic.orig/compress.c 2017-11-02 21:25:39.000000000 +0100 -+++ libmagic/compress.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/compress.c 2019-03-08 09:31:16.392796494 +0100 @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; @@ -1994,7 +1994,7 @@ diff -u libmagic.orig/compress.c libmagic/compress.c +#endif /* if PHP_FILEINFO_UNCOMPRESS */ diff -u libmagic.orig/der.c libmagic/der.c --- libmagic.orig/der.c 2017-02-10 19:14:01.000000000 +0100 -+++ libmagic/der.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/der.c 2019-03-08 09:31:16.392796494 +0100 @@ -51,7 +51,9 @@ #include "magic.h" #include "der.h" @@ -2051,7 +2051,7 @@ diff -u libmagic.orig/der.c libmagic/der.c der_tag(buf, sizeof(buf), tag), len); diff -u libmagic.orig/elfclass.h libmagic/elfclass.h --- libmagic.orig/elfclass.h 2014-12-17 00:18:40.000000000 +0100 -+++ libmagic/elfclass.h 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/elfclass.h 2019-03-08 09:31:16.392796494 +0100 @@ -1,7 +1,7 @@ /* * Copyright (c) Christos Zoulas 2008. @@ -2099,7 +2099,7 @@ diff -u libmagic.orig/elfclass.h libmagic/elfclass.h (int)elf_getu16(swap, elfhdr.e_shstrndx), diff -u libmagic.orig/encoding.c libmagic/encoding.c --- libmagic.orig/encoding.c 2017-11-02 21:25:39.000000000 +0100 -+++ libmagic/encoding.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/encoding.c 2019-03-08 09:31:16.392796494 +0100 @@ -88,12 +88,12 @@ *code_mime = "binary"; @@ -2129,7 +2129,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c } diff -u libmagic.orig/file.h libmagic/file.h --- libmagic.orig/file.h 2018-03-11 01:46:42.000000000 +0100 -+++ libmagic/file.h 2018-11-05 21:31:59.339653700 +0100 ++++ libmagic/file.h 2019-03-08 09:31:16.392796494 +0100 @@ -27,21 +27,15 @@ */ /* @@ -2416,7 +2416,7 @@ diff -u libmagic.orig/file.h libmagic/file.h #endif diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c --- libmagic.orig/fsmagic.c 2017-05-24 21:17:50.000000000 +0200 -+++ libmagic/fsmagic.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/fsmagic.c 2019-03-08 09:31:16.392796494 +0100 @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; @@ -2777,7 +2777,7 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c case S_IFSOCK: diff -u libmagic.orig/funcs.c libmagic/funcs.c --- libmagic.orig/funcs.c 2017-11-02 21:25:39.000000000 +0100 -+++ libmagic/funcs.c 2018-11-05 21:31:59.339653700 +0100 ++++ libmagic/funcs.c 2019-03-25 16:13:59.574598917 +0100 @@ -31,7 +31,6 @@ #endif /* lint */ @@ -2786,7 +2786,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c #include #include #include -@@ -42,78 +41,77 @@ +@@ -42,78 +41,76 @@ #if defined(HAVE_WCTYPE_H) #include #endif @@ -3161,7 +3161,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c diff -u libmagic.orig/magic.c libmagic/magic.c --- libmagic.orig/magic.c 2017-08-28 15:39:18.000000000 +0200 -+++ libmagic/magic.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/magic.c 2019-03-08 09:31:16.396796480 +0100 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -3636,20 +3636,9 @@ diff -u libmagic.orig/magic.c libmagic/magic.c public const char * magic_error(struct magic_set *ms) -diff -u libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2018-11-13 21:40:06.272616270 +0100 -+++ libmagic/magic.h 2018-08-10 11:46:29.214671395 +0200 -@@ -122,6 +122,7 @@ - - const char *magic_getpath(const char *, int); - const char *magic_file(magic_t, const char *); -+const char *magic_stream(magic_t, php_stream *); - const char *magic_descriptor(magic_t, int); - const char *magic_buffer(magic_t, const void *, size_t); - diff -u libmagic.orig/print.c libmagic/print.c --- libmagic.orig/print.c 2017-02-10 19:14:01.000000000 +0100 -+++ libmagic/print.c 2019-03-08 21:00:46.636733574 +0100 ++++ libmagic/print.c 2019-03-22 11:57:57.251021738 +0100 @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; @@ -3732,7 +3721,7 @@ diff -u libmagic.orig/print.c libmagic/print.c goto out; diff -u libmagic.orig/readcdf.c libmagic/readcdf.c --- libmagic.orig/readcdf.c 2017-11-02 21:25:39.000000000 +0100 -+++ libmagic/readcdf.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/readcdf.c 2019-03-08 09:31:16.396796480 +0100 @@ -31,7 +31,11 @@ #include @@ -3869,7 +3858,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c if (NOTMIME(ms)) { diff -u libmagic.orig/softmagic.c libmagic/softmagic.c --- libmagic.orig/softmagic.c 2018-04-15 20:49:15.000000000 +0200 -+++ libmagic/softmagic.c 2018-11-11 21:42:27.860274508 +0100 ++++ libmagic/softmagic.c 2019-03-25 16:13:59.574598917 +0100 @@ -43,6 +43,10 @@ #include #include "der.h" @@ -3920,7 +3909,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c - file_regex_t rx; - int rc, rv = -1; + pcre2_code *pce; -+ uint32_t re_options, capture_count; ++ uint32_t capture_count; + int rv = -1; + zend_string *pattern; @@ -3932,14 +3921,14 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c - file_regerror(&rx, rc, ms); + (void)setlocale(LC_CTYPE, "C"); + pattern = zend_string_init("~%[-0-9\\.]*s~", sizeof("~%[-0-9\\.]*s~") - 1, 0); -+ if ((pce = pcre_get_compiled_regex(pattern, &capture_count, &re_options)) == NULL) { ++ if ((pce = pcre_get_compiled_regex(pattern, &capture_count)) == NULL) { + rv = -1; } else { - rc = file_regexec(&rx, fmt, 0, 0, 0); - rv = !rc; + pcre2_match_data *match_data = php_pcre_create_match_data(capture_count, pce); + if (match_data) { -+ rv = pcre2_match(pce, (PCRE2_SPTR)fmt, strlen(fmt), 0, re_options, match_data, php_pcre_mctx()) > 0; ++ rv = pcre2_match(pce, (PCRE2_SPTR)fmt, strlen(fmt), 0, 0, match_data, php_pcre_mctx()) > 0; + php_pcre_free_match_data(match_data); + } } @@ -4228,7 +4217,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c case FILE_INDIRECT: diff -u libmagic.orig/strcasestr.c libmagic/strcasestr.c --- libmagic.orig/strcasestr.c 2014-05-13 18:48:12.000000000 +0200 -+++ libmagic/strcasestr.c 2018-08-10 11:46:29.214671395 +0200 ++++ libmagic/strcasestr.c 2019-03-08 09:31:16.396796480 +0100 @@ -39,6 +39,8 @@ #include "file.h"