From a5da4841474610f11a3e2e17fcb01cd50c9a6403 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 19 Mar 2026 15:48:41 -0400 Subject: [PATCH 1/4] ext/fileinfo/config.m4: pretend we always have strcasestr() This function isn't used, but it is declared in file.h, and that can lead to conflicts if the system also provides it. If we define HAVE_STRCASESTR=1, though, the declaration in file.h is skipped. We no longer need to compile libmagic/strcasestr.c in any case. --- ext/fileinfo/config.m4 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4 index 346061411e086..e2c17f7f1f849 100644 --- a/ext/fileinfo/config.m4 +++ b/ext/fileinfo/config.m4 @@ -29,17 +29,12 @@ if test "$PHP_FILEINFO" != "no"; then AC_CHECK_HEADERS([sys/sysmacros.h]) - AC_CHECK_FUNCS([strcasestr],,[ - AC_MSG_NOTICE([using libmagic strcasestr implementation]) - libmagic_sources="$libmagic_sources libmagic/strcasestr.c" - ]) - AX_GCC_FUNC_ATTRIBUTE([visibility]) PHP_NEW_EXTENSION([fileinfo], [fileinfo.c php_libmagic.c $libmagic_sources], [$ext_shared],, - [-I@ext_srcdir@/libmagic]) + [-I@ext_srcdir@/libmagic -DHAVE_STRCASESTR=1]) PHP_ADD_BUILD_DIR([$ext_builddir/libmagic]) PHP_ADD_EXTENSION_DEP(fileinfo, pcre) From a79d4f4a8658c26b0f58e1a9b8db3e7288eba487 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 20 Mar 2026 12:03:34 -0400 Subject: [PATCH 2/4] ext/fileinfo/libmagic/file.h: hide "file_public" names by default When libphp.so (from the embed SAPI, or the apache module) is loaded by another project that already uses libmagic, the symbols from the two copies of libmagic... $ objdump -TC ./libs/libphp.so | grep '\smagic_' 00000000002b2754 g DF .text 0000000000000034 Base magic_compile 00000000002b25fe g DF .text 0000000000000024 Base magic_open 00000000002b27f0 g DF .text 0000000000000034 Base magic_descriptor 00000000002b2720 g DF .text 0000000000000034 Base magic_load 00000000002b2c1a g DF .text 0000000000000032 Base magic_setflags 00000000002b27bc g DF .text 0000000000000034 Base magic_list 00000000002b2c62 g DF .text 0000000000000206 Base magic_setparam 00000000002b2bf4 g DF .text 0000000000000026 Base magic_getflags 00000000002b2bbe g DF .text 0000000000000036 Base magic_errno 00000000002b2e68 g DF .text 00000000000001f4 Base magic_getparam 00000000002b2b14 g DF .text 000000000000006e Base magic_buffer 00000000002b2b82 g DF .text 000000000000003c Base magic_error 00000000002b2788 g DF .text 0000000000000034 Base magic_check 00000000002b2c4c g DF .text 0000000000000016 Base magic_version 00000000002b26fa g DF .text 0000000000000026 Base magic_close 00000000002b2858 g DF .text 0000000000000034 Base magic_stream 00000000002b2824 g DF .text 0000000000000034 Base magic_file can clash. To see this, we (pointlessly) link libphp.so from the embed SAPI into a small program using the system copy of libmagic: $ gcc $(/usr/lib/php8.5/bin/php-config --includes) main.c \ -L/usr/lib/php8.5/lib -lphp -lmagic $ LD_LIBRARY_PATH=/usr/lib/php8.5/lib ./a.out Segmentation fault LD_LIBRARY_PATH=/usr/lib/php8.5/lib ./a.out To avoid this, we modify the internal "file_public" macro used by libmagic, so that (on platforms that support it) hidden visibility is used instead of the default. Afterwards the objdump command above produces no output, and the test program no longer sefaults. Co-authored-by: Ilija Tovilo PHP-bug: https://bugs.php.net/bug.php?id=66095 Gentoo-bug: https://bugs.gentoo.org/471682 --- ext/fileinfo/libmagic/file.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/fileinfo/libmagic/file.h b/ext/fileinfo/libmagic/file.h index f8fe588950021..443ca686319ba 100644 --- a/ext/fileinfo/libmagic/file.h +++ b/ext/fileinfo/libmagic/file.h @@ -102,12 +102,12 @@ #if HAVE_VISIBILITY # if defined(WIN32) -# define file_public __declspec(dllexport) +# define file_public # ifndef file_protected # define file_protected # endif # else -# define file_public __attribute__((__visibility__("default"))) +# define file_public __attribute__((__visibility__("hidden"))) # ifndef file_protected # define file_protected __attribute__((__visibility__("hidden"))) # endif From b283a533f23be4f834cbd6d54f7b988be78c719b Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 20 Mar 2026 12:07:18 -0400 Subject: [PATCH 3/4] ext/fileinfo/libmagic.patch: update Run ext/fileinfo/generate_patch.sh to update PHP's patch against file-5.46. The diff of the diff is mostly timestamps, but it does include the recent redefinition of the "file_public" macro in libmagic/file.h. It also includes a hunk for 399cb4ca8 where the patch re-roll was overlooked. --- ext/fileinfo/libmagic.patch | 87 ++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 36 deletions(-) diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 4eb7ccd336f89..9d58b8e8f8726 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 2024-11-27 16:37:00.000000000 +0100 -+++ libmagic/apprentice.c 2025-02-09 02:25:02.364884555 +0100 +--- libmagic.orig/apprentice.c 2024-11-27 10:37:00.000000000 -0500 ++++ libmagic/apprentice.c 2026-03-20 12:02:11.209343516 -0400 @@ -32,7 +32,7 @@ #include "file.h" @@ -325,14 +325,14 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c // Don't warn for DER if (mpa.type == FILE_DER) return 0; -@@ -1151,6 +1075,7 @@ +@@ -1150,6 +1074,7 @@ + ma->mp->desc); file_mdump(ma->mp); file_mdump(mb->mp); +#endif return 0; } return x > 0 ? -1 : 1; - } @@ -1303,7 +1228,7 @@ size_t incr = mset[i].max + ALLOC_INCR; @@ -954,8 +954,8 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c if (ma[j].cont_level == 0) break; diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c ---- libmagic.orig/ascmagic.c 2024-06-19 18:18:53.000000000 +0200 -+++ libmagic/ascmagic.c 2025-02-09 01:20:19.757840211 +0100 +--- libmagic.orig/ascmagic.c 2024-06-19 12:18:53.000000000 -0400 ++++ libmagic/ascmagic.c 2026-03-19 16:25:42.998672674 -0400 @@ -96,7 +96,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -996,8 +996,8 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c return rv; } diff -u libmagic.orig/buffer.c libmagic/buffer.c ---- libmagic.orig/buffer.c 2024-06-19 18:18:53.000000000 +0200 -+++ libmagic/buffer.c 2025-02-09 01:20:19.757910844 +0100 +--- libmagic.orig/buffer.c 2024-06-19 12:18:53.000000000 -0400 ++++ libmagic/buffer.c 2026-03-19 16:25:42.998672674 -0400 @@ -31,19 +31,21 @@ #endif /* lint */ @@ -1055,8 +1055,8 @@ diff -u libmagic.orig/buffer.c libmagic/buffer.c goto out; } diff -u libmagic.orig/cdf.c libmagic/cdf.c ---- libmagic.orig/cdf.c 2024-11-25 22:24:59.000000000 +0100 -+++ libmagic/cdf.c 2025-02-09 01:25:00.187641434 +0100 +--- libmagic.orig/cdf.c 2024-11-25 16:24:59.000000000 -0500 ++++ libmagic/cdf.c 2026-03-19 16:25:42.998672674 -0400 @@ -43,7 +43,9 @@ #include #endif @@ -1286,8 +1286,8 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c #endif diff -u libmagic.orig/cdf.h libmagic/cdf.h ---- libmagic.orig/cdf.h 2024-11-25 22:18:55.000000000 +0100 -+++ libmagic/cdf.h 2025-02-09 01:23:35.871635744 +0100 +--- libmagic.orig/cdf.h 2024-11-25 16:18:55.000000000 -0500 ++++ libmagic/cdf.h 2026-03-19 16:25:42.990672671 -0400 @@ -37,8 +37,6 @@ #ifdef WIN32 @@ -1439,8 +1439,8 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h diff -u libmagic.orig/compress.c libmagic/compress.c ---- libmagic.orig/compress.c 2024-11-10 17:52:27.000000000 +0100 -+++ libmagic/compress.c 2025-02-09 01:59:42.978538071 +0100 +--- libmagic.orig/compress.c 2024-11-10 11:52:27.000000000 -0500 ++++ libmagic/compress.c 2026-03-20 12:02:11.209343516 -0400 @@ -64,13 +64,14 @@ #if defined(HAVE_SYS_TIME_H) #include @@ -1666,8 +1666,8 @@ diff -u libmagic.orig/compress.c libmagic/compress.c #endif +#endif diff -u libmagic.orig/der.c libmagic/der.c ---- libmagic.orig/der.c 2024-11-25 23:31:53.000000000 +0100 -+++ libmagic/der.c 2025-02-09 01:20:19.770853011 +0100 +--- libmagic.orig/der.c 2024-11-25 17:31:53.000000000 -0500 ++++ libmagic/der.c 2026-03-19 16:25:43.002672676 -0400 @@ -54,7 +54,9 @@ #include "magic.h" #include "der.h" @@ -1679,8 +1679,8 @@ diff -u libmagic.orig/der.c libmagic/der.c #include #endif diff -u libmagic.orig/der.h libmagic/der.h ---- libmagic.orig/der.h 2024-11-25 22:26:18.000000000 +0100 -+++ libmagic/der.h 2023-04-09 22:21:58.195018580 +0200 +--- libmagic.orig/der.h 2024-11-25 16:26:18.000000000 -0500 ++++ libmagic/der.h 2026-03-19 16:25:43.006672678 -0400 @@ -24,5 +24,5 @@ * POSSIBILITY OF SUCH DAMAGE. */ @@ -1690,8 +1690,8 @@ diff -u libmagic.orig/der.h libmagic/der.h +extern int der_offs(struct magic_set *, struct magic *, size_t); +extern int der_cmp(struct magic_set *, struct magic *); diff -u libmagic.orig/encoding.c libmagic/encoding.c ---- libmagic.orig/encoding.c 2024-10-29 21:56:48.000000000 +0100 -+++ libmagic/encoding.c 2025-02-09 01:20:19.770879123 +0100 +--- libmagic.orig/encoding.c 2024-10-29 16:56:48.000000000 -0400 ++++ libmagic/encoding.c 2026-03-19 16:25:43.010672679 -0400 @@ -97,7 +97,7 @@ nbytes = ms->encoding_max; @@ -1726,8 +1726,8 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c return rv; } diff -u libmagic.orig/file.h libmagic/file.h ---- libmagic.orig/file.h 2024-11-27 16:37:00.000000000 +0100 -+++ libmagic/file.h 2025-02-09 01:47:36.242811911 +0100 +--- libmagic.orig/file.h 2024-11-27 10:37:00.000000000 -0500 ++++ libmagic/file.h 2026-03-20 12:03:18.205380698 -0400 @@ -27,15 +27,13 @@ */ /* @@ -1767,6 +1767,21 @@ diff -u libmagic.orig/file.h libmagic/file.h #define ENABLE_CONDITIONALS +@@ -109,12 +102,12 @@ + + #if HAVE_VISIBILITY + # if defined(WIN32) +-# define file_public __declspec(dllexport) ++# define file_public + # ifndef file_protected + # define file_protected + # endif + # else +-# define file_public __attribute__((__visibility__("default"))) ++# define file_public __attribute__((__visibility__("hidden"))) + # ifndef file_protected + # define file_protected __attribute__((__visibility__("hidden"))) + # endif @@ -179,7 +172,7 @@ #define MAXstring 128 /* max len of "string" types */ @@ -1936,8 +1951,8 @@ diff -u libmagic.orig/file.h libmagic/file.h #if defined(HAVE_MMAP) && defined(HAVE_SYS_MMAN_H) && !defined(QUICK) #define QUICK diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c ---- libmagic.orig/fsmagic.c 2024-06-19 18:18:53.000000000 +0200 -+++ libmagic/fsmagic.c 2025-02-09 01:20:19.770987982 +0100 +--- libmagic.orig/fsmagic.c 2024-06-19 12:18:53.000000000 -0400 ++++ libmagic/fsmagic.c 2026-03-19 16:25:43.006672678 -0400 @@ -66,26 +66,10 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -2229,8 +2244,8 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c #ifndef __COHERENT__ case S_IFSOCK: diff -u libmagic.orig/funcs.c libmagic/funcs.c ---- libmagic.orig/funcs.c 2024-06-19 18:18:53.000000000 +0200 -+++ libmagic/funcs.c 2025-02-09 01:29:25.403659334 +0100 +--- libmagic.orig/funcs.c 2024-06-19 12:18:53.000000000 -0400 ++++ libmagic/funcs.c 2026-03-19 16:25:42.990672671 -0400 @@ -66,7 +66,7 @@ file_private void file_clearbuf(struct magic_set *ms) @@ -2592,8 +2607,8 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c file_protected int file_clear_closexec(int fd) { diff -u libmagic.orig/magic.c libmagic/magic.c ---- libmagic.orig/magic.c 2024-06-19 18:18:53.000000000 +0200 -+++ libmagic/magic.c 2025-02-09 01:20:19.771155033 +0100 +--- libmagic.orig/magic.c 2024-06-19 12:18:53.000000000 -0400 ++++ libmagic/magic.c 2026-03-20 12:02:11.209343516 -0400 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -3066,8 +3081,8 @@ diff -u libmagic.orig/magic.c libmagic/magic.c } return file_getbuffer(ms); diff -u libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2025-02-09 12:43:22.903059789 +0100 -+++ libmagic/magic.h 2025-02-09 01:39:57.110146603 +0100 +--- libmagic.orig/magic.h 2026-03-20 12:07:07.493507951 -0400 ++++ libmagic/magic.h 2026-03-20 12:02:11.209343516 -0400 @@ -47,8 +47,6 @@ * extensions */ #define MAGIC_COMPRESS_TRANSP 0x2000000 /* Check inside compressed files @@ -3109,8 +3124,8 @@ diff -u libmagic.orig/magic.h libmagic/magic.h const char *magic_buffer(magic_t, const void *, size_t); diff -u libmagic.orig/print.c libmagic/print.c ---- libmagic.orig/print.c 2024-10-06 19:04:42.000000000 +0200 -+++ libmagic/print.c 2025-02-09 01:36:41.713156291 +0100 +--- libmagic.orig/print.c 2024-10-06 13:04:42.000000000 -0400 ++++ libmagic/print.c 2026-03-19 16:25:42.982672668 -0400 @@ -74,7 +74,7 @@ if (m->mask_op & FILE_OPINVERSE) (void) fputc('~', stderr); @@ -3187,8 +3202,8 @@ diff -u libmagic.orig/print.c libmagic/print.c if (pp == NULL) goto out; diff -u libmagic.orig/readcdf.c libmagic/readcdf.c ---- libmagic.orig/readcdf.c 2024-11-25 22:07:46.000000000 +0100 -+++ libmagic/readcdf.c 2025-02-09 01:20:19.771337672 +0100 +--- libmagic.orig/readcdf.c 2024-11-25 16:07:46.000000000 -0500 ++++ libmagic/readcdf.c 2026-03-19 16:25:43.002672676 -0400 @@ -31,7 +31,9 @@ #include @@ -3307,8 +3322,8 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c /* If we handled it already, return */ if (i != -1) diff -u libmagic.orig/softmagic.c libmagic/softmagic.c ---- libmagic.orig/softmagic.c 2024-11-27 16:37:00.000000000 +0100 -+++ libmagic/softmagic.c 2025-02-09 01:21:46.845689318 +0100 +--- libmagic.orig/softmagic.c 2024-11-27 10:37:00.000000000 -0500 ++++ libmagic/softmagic.c 2026-03-19 16:25:42.986672670 -0400 @@ -32,7 +32,7 @@ #include "file.h" From edbd0b9c7dabfc57b0032f8dcdec5c0dcbf4ec75 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 20 Mar 2026 15:49:23 -0400 Subject: [PATCH 4/4] ext/fileinfo: patch out strcasestr() entirely Instead of disabling the strcasestr() prototype in libmagic/file.h with -DHAVE_STRCASESTR=1, patch that hunk out to achieve parity on Windows: * Remove the HAVE_STRCASESTR conditional in libmagic/file.h * Don't define HAVE_STRCASESTR=1 in the Unix build * Remove strcasestr.c from the list of sources in config.w32 * Regenerate libmagic.patch This retains the bundled copy of strcasestr.c, but so long as no one adds it to the list of sources, it will not be used. If we were to delete it and regenerate the patch, all of the deleted lines would end up in the repository anyway. --- ext/fileinfo/config.m4 | 2 +- ext/fileinfo/config.w32 | 2 +- ext/fileinfo/libmagic.patch | 25 +++++++++++++++++-------- ext/fileinfo/libmagic/file.h | 3 --- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4 index e2c17f7f1f849..2d6139f06dff1 100644 --- a/ext/fileinfo/config.m4 +++ b/ext/fileinfo/config.m4 @@ -34,7 +34,7 @@ if test "$PHP_FILEINFO" != "no"; then PHP_NEW_EXTENSION([fileinfo], [fileinfo.c php_libmagic.c $libmagic_sources], [$ext_shared],, - [-I@ext_srcdir@/libmagic -DHAVE_STRCASESTR=1]) + [-I@ext_srcdir@/libmagic]) PHP_ADD_BUILD_DIR([$ext_builddir/libmagic]) PHP_ADD_EXTENSION_DEP(fileinfo, pcre) diff --git a/ext/fileinfo/config.w32 b/ext/fileinfo/config.w32 index 2a42dc45a1d12..34670e7451e48 100644 --- a/ext/fileinfo/config.w32 +++ b/ext/fileinfo/config.w32 @@ -8,7 +8,7 @@ if (PHP_FILEINFO != 'no') { encoding.c fsmagic.c funcs.c \ is_json.c is_tar.c is_simh.c magic.c print.c \ readcdf.c softmagic.c der.c \ - strcasestr.c buffer.c is_csv.c"; + buffer.c is_csv.c"; EXTENSION('fileinfo', 'fileinfo.c php_libmagic.c', true, "/I" + configure_module_dirname + "/libmagic /I" + configure_module_dirname); ADD_EXTENSION_DEP('fileinfo', 'pcre'); diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 9d58b8e8f8726..1871468e8325a 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 2024-11-27 10:37:00.000000000 -0500 -+++ libmagic/apprentice.c 2026-03-20 12:02:11.209343516 -0400 ++++ libmagic/apprentice.c 2026-03-20 12:10:19.777614667 -0400 @@ -32,7 +32,7 @@ #include "file.h" @@ -1440,7 +1440,7 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h diff -u libmagic.orig/compress.c libmagic/compress.c --- libmagic.orig/compress.c 2024-11-10 11:52:27.000000000 -0500 -+++ libmagic/compress.c 2026-03-20 12:02:11.209343516 -0400 ++++ libmagic/compress.c 2026-03-20 12:10:19.777614667 -0400 @@ -64,13 +64,14 @@ #if defined(HAVE_SYS_TIME_H) #include @@ -1727,7 +1727,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c } diff -u libmagic.orig/file.h libmagic/file.h --- libmagic.orig/file.h 2024-11-27 10:37:00.000000000 -0500 -+++ libmagic/file.h 2026-03-20 12:03:18.205380698 -0400 ++++ libmagic/file.h 2026-03-20 15:39:51.133617915 -0400 @@ -27,15 +27,13 @@ */ /* @@ -1898,7 +1898,7 @@ diff -u libmagic.orig/file.h libmagic/file.h typedef struct { char *buf; size_t blen; -@@ -649,19 +629,6 @@ +@@ -649,28 +629,12 @@ extern file_protected const size_t file_nnames; #endif @@ -1918,7 +1918,16 @@ diff -u libmagic.orig/file.h libmagic/file.h #ifndef HAVE_STRLCPY size_t strlcpy(char *, const char *, size_t); #endif -@@ -681,31 +648,6 @@ + #ifndef HAVE_STRLCAT + size_t strlcat(char *, const char *, size_t); + #endif +-#ifndef HAVE_STRCASESTR +-char *strcasestr(const char *, const char *); +-#endif + #ifndef HAVE_GETLINE + ssize_t getline(char **, size_t *, FILE *); + ssize_t getdelim(char **, size_t *, int, FILE *); +@@ -681,31 +645,6 @@ #ifndef HAVE_ASCTIME_R char *asctime_r(const struct tm *, char *); #endif @@ -2608,7 +2617,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c file_clear_closexec(int fd) { diff -u libmagic.orig/magic.c libmagic/magic.c --- libmagic.orig/magic.c 2024-06-19 12:18:53.000000000 -0400 -+++ libmagic/magic.c 2026-03-20 12:02:11.209343516 -0400 ++++ libmagic/magic.c 2026-03-20 12:10:19.777614667 -0400 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -3081,8 +3090,8 @@ diff -u libmagic.orig/magic.c libmagic/magic.c } return file_getbuffer(ms); diff -u libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2026-03-20 12:07:07.493507951 -0400 -+++ libmagic/magic.h 2026-03-20 12:02:11.209343516 -0400 +--- libmagic.orig/magic.h 2026-03-20 15:48:25.885903599 -0400 ++++ libmagic/magic.h 2026-03-20 12:10:19.777614667 -0400 @@ -47,8 +47,6 @@ * extensions */ #define MAGIC_COMPRESS_TRANSP 0x2000000 /* Check inside compressed files diff --git a/ext/fileinfo/libmagic/file.h b/ext/fileinfo/libmagic/file.h index 443ca686319ba..5357578c6a775 100644 --- a/ext/fileinfo/libmagic/file.h +++ b/ext/fileinfo/libmagic/file.h @@ -635,9 +635,6 @@ size_t strlcpy(char *, const char *, size_t); #ifndef HAVE_STRLCAT size_t strlcat(char *, const char *, size_t); #endif -#ifndef HAVE_STRCASESTR -char *strcasestr(const char *, const char *); -#endif #ifndef HAVE_GETLINE ssize_t getline(char **, size_t *, FILE *); ssize_t getdelim(char **, size_t *, int, FILE *);