]> granicus.if.org Git - php/commitdiff
Add script to generate libmagic.patch
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 11 Apr 2019 13:12:20 +0000 (15:12 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 11 Apr 2019 13:12:20 +0000 (15:12 +0200)
ext/fileinfo/generate_patch.sh [new file with mode: 0755]
ext/fileinfo/libmagic.patch

diff --git a/ext/fileinfo/generate_patch.sh b/ext/fileinfo/generate_patch.sh
new file mode 100755 (executable)
index 0000000..b7e9a38
--- /dev/null
@@ -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
index 06b3aefc38f8270c46cff184ac3356723abb5d65..7f4e1f604702c16fc73cfb0a124b00f1cb110287 100644 (file)
@@ -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 <err.h>
  #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 <stdarg.h>
  #include <stdlib.h>
  #include <string.h>
-@@ -42,78 +41,77 @@
+@@ -42,78 +41,76 @@
  #if defined(HAVE_WCTYPE_H)
  #include <wctype.h>
  #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 <assert.h>
@@ -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 <time.h>
  #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"