diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-03-02 15:06:14 +0100 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-03-02 15:08:50 +0100 |
commit | 7fa6e2a25ccbe2cc3a747e2d7090b6e61718b699 (patch) | |
tree | f03005b4c674a41abb681fe10f0aab1620d531b2 | |
parent | 318757551a62f767a956db50e7d3592d7cb07407 (diff) | |
parent | f15ab32af8436f9cbb6c5751f884f25289a13a36 (diff) | |
download | php-git-7fa6e2a25ccbe2cc3a747e2d7090b6e61718b699.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Update libmagic.patch
-rwxr-xr-x | ext/fileinfo/generate_patch.sh | 1 | ||||
-rw-r--r-- | ext/fileinfo/libmagic.patch | 154 |
2 files changed, 96 insertions, 59 deletions
diff --git a/ext/fileinfo/generate_patch.sh b/ext/fileinfo/generate_patch.sh index 325a321d74..5431ca5e4f 100755 --- a/ext/fileinfo/generate_patch.sh +++ b/ext/fileinfo/generate_patch.sh @@ -4,4 +4,5 @@ if [[ ! -d libmagic.orig ]]; then wget -O - ftp://ftp.astron.com/pub/file/file-$VERSION.tar.gz \ | tar -xz --strip-components=2 -C libmagic.orig file-$VERSION/src fi +sed -e "s/X\.YY/${VERSION//.}/g" libmagic.orig/magic.h.in > libmagic.orig/magic.h diff -u libmagic.orig libmagic | grep -v '^Only in' > libmagic.patch diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 13c89c8715..c3669d9d6e 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 2019-02-20 03:35:27.000000000 +0100 -+++ libmagic/apprentice.c 2019-06-29 22:00:36.200336685 +0200 ++++ libmagic/apprentice.c 2020-03-02 15:04:23.670412600 +0100 @@ -29,6 +29,8 @@ * apprentice - make one pass through /etc/magic, learning its secrets. */ @@ -974,7 +974,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c } diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c --- libmagic.orig/ascmagic.c 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/ascmagic.c 2019-06-29 20:07:54.070996657 +0200 ++++ libmagic/ascmagic.c 2020-03-02 15:04:23.671413500 +0100 @@ -96,7 +96,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -1005,7 +1005,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c } diff -u libmagic.orig/buffer.c libmagic/buffer.c --- libmagic.orig/buffer.c 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/buffer.c 2019-06-29 22:07:44.306641133 +0200 ++++ libmagic/buffer.c 2020-03-02 15:04:23.672412500 +0100 @@ -31,19 +31,23 @@ #endif /* lint */ @@ -1062,7 +1062,7 @@ diff -u libmagic.orig/buffer.c libmagic/buffer.c diff -u libmagic.orig/cdf.c libmagic/cdf.c --- libmagic.orig/cdf.c 2019-02-20 03:35:27.000000000 +0100 -+++ libmagic/cdf.c 2019-06-29 20:07:54.074996599 +0200 ++++ libmagic/cdf.c 2020-03-02 15:04:23.674415200 +0100 @@ -43,7 +43,17 @@ #include <err.h> #endif @@ -1264,7 +1264,28 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c *maxcount = 0; *info = NULL; return NULL; -@@ -1102,7 +1084,7 @@ +@@ -1013,8 +995,9 @@ + 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 +1039,6 @@ + goto out; + inp += nelem; + } +- DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n", +- nelements)); + for (j = 0; j < nelements && i < sh.sh_properties; + j++, i++) + { +@@ -1102,7 +1083,7 @@ } return 0; out: @@ -1273,7 +1294,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c *info = NULL; *count = 0; *maxcount = 0; -@@ -1394,7 +1376,7 @@ +@@ -1394,7 +1375,7 @@ cdf_directory_t *d; char name[__arraycount(d->d_name)]; cdf_stream_t scn; @@ -1282,7 +1303,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c static const char *types[] = { "empty", "user storage", "user stream", "lockbytes", "property", "root storage" }; -@@ -1436,7 +1418,7 @@ +@@ -1436,7 +1417,7 @@ break; } cdf_dump_stream(&scn); @@ -1291,7 +1312,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c break; default: break; -@@ -1449,7 +1431,7 @@ +@@ -1449,7 +1430,7 @@ cdf_dump_property_info(const cdf_property_info_t *info, size_t count) { cdf_timestamp_t tp; @@ -1300,7 +1321,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c char buf[64]; size_t i, j; -@@ -1534,7 +1516,7 @@ +@@ -1534,7 +1515,7 @@ (void)fprintf(stderr, "Class %s\n", buf); (void)fprintf(stderr, "Count %d\n", ssi.si_count); cdf_dump_property_info(info, count); @@ -1309,7 +1330,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c } -@@ -1555,7 +1537,7 @@ +@@ -1555,7 +1536,7 @@ cdf_u16tos8(sbuf, ce[i].ce_namlen, ce[i].ce_name), cdf_ctime(&ts.tv_sec, tbuf)); } @@ -1320,7 +1341,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c #endif diff -u libmagic.orig/cdf.h libmagic/cdf.h --- libmagic.orig/cdf.h 2019-02-20 02:24:19.000000000 +0100 -+++ libmagic/cdf.h 2019-06-29 20:07:54.074996599 +0200 ++++ libmagic/cdf.h 2020-03-02 15:04:23.675416900 +0100 @@ -35,10 +35,10 @@ #ifndef _H_CDF_ #define _H_CDF_ @@ -1335,9 +1356,17 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h #endif #ifdef __DJGPP__ #define timespec timeval +@@ -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 diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c --- libmagic.orig/cdf_time.c 2019-03-12 21:43:05.000000000 +0100 -+++ libmagic/cdf_time.c 2019-06-29 20:07:54.074996599 +0200 ++++ libmagic/cdf_time.c 2020-03-02 15:04:23.676413000 +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. @@ -1366,7 +1395,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 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/compress.c 2019-06-29 20:07:54.078996542 +0200 ++++ libmagic/compress.c 2020-03-02 15:04:23.676413000 +0100 @@ -45,13 +45,11 @@ #endif #include <string.h> @@ -1516,7 +1545,7 @@ diff -u libmagic.orig/compress.c libmagic/compress.c +#endif diff -u libmagic.orig/der.c libmagic/der.c --- libmagic.orig/der.c 2019-02-20 03:35:27.000000000 +0100 -+++ libmagic/der.c 2019-06-29 20:07:54.078996542 +0200 ++++ libmagic/der.c 2020-03-02 15:04:23.677412900 +0100 @@ -51,7 +51,9 @@ #include "magic.h" #include "der.h" @@ -1546,7 +1575,7 @@ diff -u libmagic.orig/der.c libmagic/der.c snprintf(buf + z, blen - z, "%.2x", d[i]); diff -u libmagic.orig/elfclass.h libmagic/elfclass.h --- libmagic.orig/elfclass.h 2019-02-20 02:30:19.000000000 +0100 -+++ libmagic/elfclass.h 2019-06-29 20:07:54.078996542 +0200 ++++ libmagic/elfclass.h 2020-03-02 15:04:23.679414300 +0100 @@ -41,7 +41,7 @@ return toomany(ms, "program headers", phnum); flags |= FLAGS_IS_CORE; @@ -1576,7 +1605,7 @@ diff -u libmagic.orig/elfclass.h libmagic/elfclass.h CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)), diff -u libmagic.orig/encoding.c libmagic/encoding.c --- libmagic.orig/encoding.c 2019-04-15 18:48:41.000000000 +0200 -+++ libmagic/encoding.c 2019-06-29 20:07:54.078996542 +0200 ++++ libmagic/encoding.c 2020-03-02 15:04:23.680413600 +0100 @@ -89,13 +89,13 @@ *code_mime = "binary"; @@ -1607,7 +1636,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c } diff -u libmagic.orig/file.h libmagic/file.h --- libmagic.orig/file.h 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/file.h 2019-06-29 20:32:19.553528888 +0200 ++++ libmagic/file.h 2020-03-02 15:04:23.682414300 +0100 @@ -33,18 +33,9 @@ #ifndef __file_h__ #define __file_h__ @@ -1894,7 +1923,7 @@ diff -u libmagic.orig/file.h libmagic/file.h #endif diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c --- libmagic.orig/fsmagic.c 2019-05-07 04:26:48.000000000 +0200 -+++ libmagic/fsmagic.c 2019-06-29 20:07:54.082996485 +0200 ++++ libmagic/fsmagic.c 2020-03-02 15:04:23.683417500 +0100 @@ -66,26 +66,10 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -2187,7 +2216,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 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/funcs.c 2019-06-29 20:07:54.082996485 +0200 ++++ libmagic/funcs.c 2020-03-02 15:04:23.684415800 +0100 @@ -31,7 +31,6 @@ #endif /* lint */ @@ -2409,7 +2438,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c if (ms->c.li == NULL) { file_oomem(ms, len); return -1; -@@ -513,76 +520,41 @@ +@@ -513,76 +520,38 @@ protected int file_replace(struct magic_set *ms, const char *pat, const char *rep) { @@ -2437,11 +2466,9 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c + zend_string *repl; + size_t rep_cnt = 0; + -+ (void)setlocale(LC_CTYPE, "C"); -+ + opts |= PCRE2_MULTILINE; + convert_libmagic_pattern(&patt, (char*)pat, strlen(pat), opts); -+ if ((pce = pcre_get_compiled_regex_cache(Z_STR(patt))) == NULL) { ++ if ((pce = pcre_get_compiled_regex_cache_ex(Z_STR(patt), 0)) == NULL) { + zval_ptr_dtor(&patt); + rep_cnt = -1; + goto out; @@ -2510,12 +2537,11 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c - file_magerror(ms, "regex error %d for `%s', (%s)", rc, rx->pat, - errmsg); +out: -+ (void)setlocale(LC_CTYPE, ""); + return rep_cnt; } protected file_pushbuf_t * -@@ -593,7 +565,7 @@ +@@ -593,7 +562,7 @@ if (ms->event_flags & EVENT_HAD_ERR) return NULL; @@ -2524,7 +2550,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c return NULL; pb->buf = ms->o.buf; -@@ -611,8 +583,8 @@ +@@ -611,8 +580,8 @@ char *rbuf; if (ms->event_flags & EVENT_HAD_ERR) { @@ -2535,7 +2561,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c return NULL; } -@@ -621,7 +593,7 @@ +@@ -621,7 +590,7 @@ ms->o.buf = pb->buf; ms->offset = pb->offset; @@ -2546,7 +2572,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c diff -u libmagic.orig/magic.c libmagic/magic.c --- libmagic.orig/magic.c 2019-05-07 04:27:11.000000000 +0200 -+++ libmagic/magic.c 2019-06-29 20:07:54.082996485 +0200 ++++ libmagic/magic.c 2020-03-02 15:04:23.686413600 +0100 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -3010,8 +3036,8 @@ 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 2019-06-29 20:13:10.290924369 +0200 -+++ libmagic/magic.h 2019-06-29 20:11:37.732033650 +0200 +--- libmagic.orig/magic.h 2020-03-02 15:06:39.235737800 +0100 ++++ libmagic/magic.h 2020-03-02 15:04:23.686413600 +0100 @@ -124,6 +124,7 @@ const char *magic_getpath(const char *, int); @@ -3022,7 +3048,7 @@ diff -u libmagic.orig/magic.h libmagic/magic.h diff -u libmagic.orig/print.c libmagic/print.c --- libmagic.orig/print.c 2019-03-12 21:43:05.000000000 +0100 -+++ libmagic/print.c 2019-06-29 20:07:54.082996485 +0200 ++++ libmagic/print.c 2020-03-02 15:04:23.688414000 +0100 @@ -28,6 +28,7 @@ /* * print.c - debugging printout routines @@ -3096,7 +3122,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 2019-03-12 21:43:05.000000000 +0100 -+++ libmagic/readcdf.c 2019-06-29 22:10:43.100179773 +0200 ++++ libmagic/readcdf.c 2020-03-02 15:04:23.689414500 +0100 @@ -31,7 +31,11 @@ #include <assert.h> @@ -3120,12 +3146,13 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c return NULL; } -@@ -112,30 +112,14 @@ +@@ -112,30 +112,24 @@ { size_t i; const char *rv = NULL; -#ifdef USE_C_LOCALE - locale_t old_lc_ctype, c_lc_ctype; ++ char *vbuf_lower; - c_lc_ctype = newlocale(LC_CTYPE_MASK, "C", 0); - assert(c_lc_ctype != NULL); @@ -3134,9 +3161,18 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c -#else - char *old_lc_ctype = setlocale(LC_CTYPE, "C"); -#endif -+ (void)setlocale(LC_CTYPE, "C"); - for (i = 0; nv[i].pattern != NULL; i++) - if (strcasestr(vbuf, nv[i].pattern) != NULL) { +- for (i = 0; nv[i].pattern != NULL; i++) +- if (strcasestr(vbuf, nv[i].pattern) != NULL) { ++ vbuf_lower = zend_str_tolower_dup(vbuf, strlen(vbuf)); ++ for (i = 0; nv[i].pattern != NULL; i++) { ++ char *pattern_lower; ++ int found; ++ ++ pattern_lower = zend_str_tolower_dup(nv[i].pattern, strlen(nv[i].pattern)); ++ found = (strstr(vbuf_lower, pattern_lower) != NULL); ++ efree(pattern_lower); ++ ++ if (found) { rv = nv[i].mime; break; } @@ -3149,11 +3185,13 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c -#else - setlocale(LC_CTYPE, old_lc_ctype); -#endif -+ (void)setlocale(LC_CTYPE, ""); ++ } ++ ++ efree(vbuf_lower); return rv; } -@@ -151,7 +135,9 @@ +@@ -151,7 +145,9 @@ const char *s, *e; int len; @@ -3164,7 +3202,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c str = cdf_clsid_to_mime(root_storage->d_storage_uuid, clsid2mime); -@@ -277,10 +263,10 @@ +@@ -277,10 +273,10 @@ if (file_printf(ms, "%s%s", cdf_u16tos8(buf, ce[i].ce_namlen, ce[i].ce_name), i == cat->cat_num - 1 ? "]" : ", ") == -1) { @@ -3177,7 +3215,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c } else if (ms->flags & MAGIC_MIME_TYPE) { if (file_printf(ms, "application/CDFV2") == -1) return -1; -@@ -341,7 +327,7 @@ +@@ -341,7 +337,7 @@ } m = cdf_file_property_info(ms, info, count, root_storage); @@ -3186,7 +3224,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c return m == -1 ? -2 : m; } -@@ -651,11 +637,11 @@ +@@ -651,11 +647,11 @@ cdf_zero_stream(&scn); cdf_zero_stream(&sst); out3: @@ -3203,7 +3241,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c if (i != -1) diff -u libmagic.orig/softmagic.c libmagic/softmagic.c --- libmagic.orig/softmagic.c 2019-05-17 04:24:59.000000000 +0200 -+++ libmagic/softmagic.c 2019-06-29 20:07:54.086996427 +0200 ++++ libmagic/softmagic.c 2020-03-02 15:04:23.690413500 +0100 @@ -43,6 +43,10 @@ #include <time.h> #include "der.h" @@ -3247,14 +3285,13 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c #define FLT (STRING_BINTEST | STRING_TEXTTEST) ((text && (m->str_flags & FLT) == STRING_BINTEST) || (!text && (m->str_flags & FLT) == STRING_TEXTTEST))) || -@@ -463,45 +469,30 @@ +@@ -463,45 +469,28 @@ private int check_fmt(struct magic_set *ms, const char *fmt) { - file_regex_t rx; - int rc, rv = -1; -+ pcre2_code *pce; -+ uint32_t capture_count; ++ pcre_cache_entry *pce; + int rv = -1; + zend_string *pattern; @@ -3264,22 +3301,21 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c - rc = file_regcomp(&rx, "%[-0-9\\.]*s", REG_EXTENDED|REG_NOSUB); - if (rc) { - 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)) == NULL) { ++ if ((pce = pcre_get_compiled_regex_cache_ex(pattern, 0)) == 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); ++ pcre2_code *re = php_pcre_pce_re(pce); ++ pcre2_match_data *match_data = php_pcre_create_match_data(0, re); + if (match_data) { -+ rv = pcre2_match(pce, (PCRE2_SPTR)fmt, strlen(fmt), 0, 0, match_data, php_pcre_mctx()) > 0; ++ rv = pcre2_match(re, (PCRE2_SPTR)fmt, strlen(fmt), 0, 0, match_data, php_pcre_mctx()) > 0; + php_pcre_free_match_data(match_data); + } } - file_regfree(&rx); -+ zend_string_release_ex(pattern, 0); -+ (void)setlocale(LC_CTYPE, ""); ++ zend_string_release(pattern); return rv; } @@ -3308,7 +3344,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c static int varexpand(struct magic_set *ms, char *buf, size_t len, const char *str) { -@@ -796,15 +787,11 @@ +@@ -796,15 +785,11 @@ char *cp; int rval; @@ -3327,7 +3363,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c if (rval == -1) return -1; -@@ -1555,9 +1542,6 @@ +@@ -1555,9 +1540,6 @@ *indir_count, *name_count); mdebug(offset, RCAST(char *, RCAST(void *, p)), sizeof(union VALUETYPE)); @@ -3337,7 +3373,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c } if (m->flag & INDIR) { -@@ -1685,7 +1669,7 @@ +@@ -1685,7 +1667,7 @@ offset = do_ops(m, SEXT(sgn,64,BE64(p)), off); break; default: @@ -3346,7 +3382,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c } if (m->flag & INDIROFFADD) { -@@ -1706,9 +1690,6 @@ +@@ -1706,9 +1688,6 @@ if ((ms->flags & MAGIC_DEBUG) != 0) { mdebug(offset, RCAST(char *, RCAST(void *, p)), sizeof(union VALUETYPE)); @@ -3356,7 +3392,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c } } -@@ -1792,17 +1773,16 @@ +@@ -1792,17 +1771,16 @@ if (rv == 1) { if ((ms->flags & MAGIC_NODESC) == 0 && @@ -3378,7 +3414,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c return rv; case FILE_USE: -@@ -1926,6 +1906,47 @@ +@@ -1926,6 +1904,47 @@ return file_strncmp(a, b, len, flags); } @@ -3426,7 +3462,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c private int magiccheck(struct magic_set *ms, struct magic *m) { -@@ -2104,65 +2125,77 @@ +@@ -2104,65 +2123,77 @@ break; } case FILE_REGEX: { @@ -3558,7 +3594,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-09-11 17:05:33.000000000 +0200 -+++ libmagic/strcasestr.c 2019-06-29 20:07:54.086996427 +0200 ++++ libmagic/strcasestr.c 2019-04-02 11:56:06.853152400 +0200 @@ -39,6 +39,8 @@ #include "file.h" |