Skip to content

Commit 4139422

Browse files
authored
fileinfo: Don't compile libmagic/strcasestr.c (GH-21522)
* ext/fileinfo/libmagic/file.h: delete HAVE_STRCASESTR ifdef PHP's copy of libmagic doesn't use the strcasestr() function, so there is no reason to prototype it, regardless of whether or not the OS (libc) provides it. * ext/fileinfo/libmagic.patch: update Run ext/fileinfo/generate_patch.sh to re-roll this patch, a recent commit removes HAVE_STRCASESTR from PHP's copy of libmagic. * ext/fileinfo/config.{m4,w32}: don't compile strcasestr.c Unlike the upstream library, PHP's copy of libmagic doesn't use the strcasestr() function, so there is no reason to include strcasestr.c in the list of source files.
1 parent 4bfa1b6 commit 4139422

File tree

4 files changed

+14
-13
lines changed

4 files changed

+14
-13
lines changed

ext/fileinfo/config.m4

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ if test "$PHP_FILEINFO" != "no"; then
2929

3030
AC_CHECK_HEADERS([sys/sysmacros.h])
3131

32-
AC_CHECK_FUNCS([strcasestr],,[
33-
AC_MSG_NOTICE([using libmagic strcasestr implementation])
34-
libmagic_sources="$libmagic_sources libmagic/strcasestr.c"
35-
])
36-
3732
AX_GCC_FUNC_ATTRIBUTE([visibility])
3833

3934
PHP_NEW_EXTENSION([fileinfo],

ext/fileinfo/config.w32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if (PHP_FILEINFO != 'no') {
88
encoding.c fsmagic.c funcs.c \
99
is_json.c is_tar.c is_simh.c magic.c print.c \
1010
readcdf.c softmagic.c der.c \
11-
strcasestr.c buffer.c is_csv.c";
11+
buffer.c is_csv.c";
1212

1313
EXTENSION('fileinfo', 'fileinfo.c php_libmagic.c', true, "/I" + configure_module_dirname + "/libmagic /I" + configure_module_dirname);
1414
ADD_EXTENSION_DEP('fileinfo', 'pcre');

ext/fileinfo/libmagic.patch

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,7 +1727,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c
17271727
}
17281728
diff -u libmagic.orig/file.h libmagic/file.h
17291729
--- libmagic.orig/file.h 2024-11-27 10:37:00.000000000 -0500
1730-
+++ libmagic/file.h 2026-03-24 10:45:21.427536159 -0400
1730+
+++ libmagic/file.h 2026-03-25 08:13:23.336328498 -0400
17311731
@@ -27,15 +27,13 @@
17321732
*/
17331733
/*
@@ -1883,7 +1883,7 @@ diff -u libmagic.orig/file.h libmagic/file.h
18831883
typedef struct {
18841884
char *buf;
18851885
size_t blen;
1886-
@@ -649,19 +629,6 @@
1886+
@@ -649,28 +629,12 @@
18871887
extern file_protected const size_t file_nnames;
18881888
#endif
18891889

@@ -1903,7 +1903,16 @@ diff -u libmagic.orig/file.h libmagic/file.h
19031903
#ifndef HAVE_STRLCPY
19041904
size_t strlcpy(char *, const char *, size_t);
19051905
#endif
1906-
@@ -681,31 +648,6 @@
1906+
#ifndef HAVE_STRLCAT
1907+
size_t strlcat(char *, const char *, size_t);
1908+
#endif
1909+
-#ifndef HAVE_STRCASESTR
1910+
-char *strcasestr(const char *, const char *);
1911+
-#endif
1912+
#ifndef HAVE_GETLINE
1913+
ssize_t getline(char **, size_t *, FILE *);
1914+
ssize_t getdelim(char **, size_t *, int, FILE *);
1915+
@@ -681,31 +645,6 @@
19071916
#ifndef HAVE_ASCTIME_R
19081917
char *asctime_r(const struct tm *, char *);
19091918
#endif
@@ -3066,7 +3075,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
30663075
}
30673076
return file_getbuffer(ms);
30683077
diff -u libmagic.orig/magic.h libmagic/magic.h
3069-
--- libmagic.orig/magic.h 2026-03-24 10:45:56.975553410 -0400
3078+
--- libmagic.orig/magic.h 2026-03-25 08:16:04.280413419 -0400
30703079
+++ libmagic/magic.h 2026-03-20 12:10:19.777614667 -0400
30713080
@@ -47,8 +47,6 @@
30723081
* extensions */

ext/fileinfo/libmagic/file.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,9 +635,6 @@ size_t strlcpy(char *, const char *, size_t);
635635
#ifndef HAVE_STRLCAT
636636
size_t strlcat(char *, const char *, size_t);
637637
#endif
638-
#ifndef HAVE_STRCASESTR
639-
char *strcasestr(const char *, const char *);
640-
#endif
641638
#ifndef HAVE_GETLINE
642639
ssize_t getline(char **, size_t *, FILE *);
643640
ssize_t getdelim(char **, size_t *, int, FILE *);

0 commit comments

Comments
 (0)