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;
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
#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);
}
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 */
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
#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_
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.
(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;
+#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"
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.
(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";
}
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 @@
*/
/*
#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;
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 */
#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
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.
*/
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;
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>
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"
- 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;
- 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);
+ }
}
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"