diff options
author | Anatoliy Belsky <ab@php.net> | 2012-05-29 17:38:30 +0200 |
---|---|---|
committer | Anatoliy Belsky <ab@php.net> | 2012-05-29 17:38:30 +0200 |
commit | 8d5e953a19a08e562448f2a0562228fd1be60715 (patch) | |
tree | d219737ab4a783cbd098c9de904e884a2fda63d3 | |
parent | ad0371ac7ecff5fedf1786c3aa720760f98c6269 (diff) | |
download | php-git-8d5e953a19a08e562448f2a0562228fd1be60715.tar.gz |
updated the libmagic patch after Felipes regex fix
-rw-r--r-- | ext/fileinfo/libmagic.patch | 124 |
1 files changed, 50 insertions, 74 deletions
diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index baeac1dc16..48a02360b0 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 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/apprentice.c 2012-04-22 19:28:57.346309536 +0800 +--- libmagic.orig/apprentice.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/apprentice.c 2012-04-22 18:57:16.215980866 +0200 @@ -29,6 +29,8 @@ * apprentice - make one pass through /etc/magic, learning its secrets. */ @@ -729,8 +729,8 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c m->str_flags = swap4(m->str_flags); } diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c ---- libmagic.orig/ascmagic.c 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/ascmagic.c 2012-04-22 19:28:57.330309533 +0800 +--- libmagic.orig/ascmagic.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/ascmagic.c 2012-04-22 18:57:16.215980866 +0200 @@ -139,10 +139,8 @@ /* malloc size is a conservative overestimate; could be improved, or at least realloced after conversion. */ @@ -755,8 +755,8 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c return rv; } diff -u libmagic.orig/cdf.c libmagic/cdf.c ---- libmagic.orig/cdf.c 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/cdf.c 2012-04-22 19:28:57.370309531 +0800 +--- libmagic.orig/cdf.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/cdf.c 2012-04-22 18:57:16.219978162 +0200 @@ -43,7 +43,17 @@ #include <err.h> #endif @@ -819,8 +819,8 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c (void)fprintf(stderr, "timestamp %s\n", buf); } else { diff -u libmagic.orig/cdf.h libmagic/cdf.h ---- libmagic.orig/cdf.h 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/cdf.h 2012-04-22 19:28:57.370309531 +0800 +--- libmagic.orig/cdf.h 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/cdf.h 2012-04-22 18:57:16.219978162 +0200 @@ -35,7 +35,7 @@ #ifndef _H_CDF_ #define _H_CDF_ @@ -857,8 +857,8 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h void cdf_swap_header(cdf_header_t *); void cdf_unpack_header(cdf_header_t *, char *); diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c ---- libmagic.orig/cdf_time.c 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/cdf_time.c 2012-04-22 19:28:57.326309537 +0800 +--- libmagic.orig/cdf_time.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/cdf_time.c 2012-04-22 18:57:16.219978162 +0200 @@ -96,7 +96,7 @@ } @@ -916,8 +916,8 @@ diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c static const char *ref = "Sat Apr 23 01:30:00 1977"; char *p, *q; diff -u libmagic.orig/compress.c libmagic/compress.c ---- libmagic.orig/compress.c 2012-04-22 19:30:43.182305355 +0800 -+++ libmagic/compress.c 2012-04-22 19:28:57.314309548 +0800 +--- libmagic.orig/compress.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/compress.c 2012-04-22 18:57:16.219978162 +0200 @@ -32,6 +32,7 @@ * uncompress(method, old, n, newch) - uncompress old into new, * using method, return sizeof new @@ -1079,8 +1079,8 @@ diff -u libmagic.orig/compress.c libmagic/compress.c -#endif +#endif /* if PHP_FILEINFO_UNCOMPRESS */ diff -u libmagic.orig/file.h libmagic/file.h ---- libmagic.orig/file.h 2012-04-22 19:30:43.186305188 +0800 -+++ libmagic/file.h 2012-04-22 19:49:58.922256776 +0800 +--- libmagic.orig/file.h 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/file.h 2012-04-22 18:57:16.219978162 +0200 @@ -33,11 +33,9 @@ #ifndef __file_h__ #define __file_h__ @@ -1252,8 +1252,8 @@ diff -u libmagic.orig/file.h libmagic/file.h + #endif /* __file_h__ */ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c ---- libmagic.orig/fsmagic.c 2012-04-22 19:30:43.186305188 +0800 -+++ libmagic/fsmagic.c 2012-04-22 19:28:57.298309521 +0800 +--- libmagic.orig/fsmagic.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/fsmagic.c 2012-04-22 18:57:16.219978162 +0200 @@ -59,27 +59,21 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -1577,8 +1577,8 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c /* diff -u libmagic.orig/funcs.c libmagic/funcs.c ---- libmagic.orig/funcs.c 2012-04-22 19:30:43.186305188 +0800 -+++ libmagic/funcs.c 2012-04-22 19:28:57.370309531 +0800 +--- libmagic.orig/funcs.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/funcs.c 2012-04-22 18:57:16.219978162 +0200 @@ -41,52 +41,42 @@ #if defined(HAVE_WCTYPE_H) #include <wctype.h> @@ -1872,11 +1872,9 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c + return rep_cnt; } + -Only in libmagic.orig: funcs.c.orig -Only in libmagic.orig: funcs.c.rej diff -u libmagic.orig/magic.c libmagic/magic.c ---- libmagic.orig/magic.c 2012-04-22 19:30:43.186305188 +0800 -+++ libmagic/magic.c 2012-04-22 19:28:57.370309531 +0800 +--- libmagic.orig/magic.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/magic.c 2012-04-22 18:57:16.219978162 +0200 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -2253,8 +2251,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 2012-04-22 19:30:43.190305058 +0800 -+++ libmagic/magic.h 2012-04-22 19:28:57.326309537 +0800 +--- libmagic.orig/magic.h 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/magic.h 2012-04-22 18:57:16.219978162 +0200 @@ -85,6 +85,7 @@ const char *magic_getpath(const char *, int); @@ -2272,8 +2270,8 @@ diff -u libmagic.orig/magic.h libmagic/magic.h int magic_errno(magic_t); diff -u libmagic.orig/print.c libmagic/print.c ---- libmagic.orig/print.c 2012-04-22 19:30:43.190305058 +0800 -+++ libmagic/print.c 2012-04-22 19:28:57.326309537 +0800 +--- libmagic.orig/print.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/print.c 2012-05-29 14:34:03.770376387 +0200 @@ -29,6 +29,9 @@ * print.c - debugging printout routines */ @@ -2467,8 +2465,8 @@ diff -u libmagic.orig/print.c libmagic/print.c protected const char * diff -u libmagic.orig/readcdf.c libmagic/readcdf.c ---- libmagic.orig/readcdf.c 2012-04-22 19:30:43.190305058 +0800 -+++ libmagic/readcdf.c 2012-04-22 19:28:57.326309537 +0800 +--- libmagic.orig/readcdf.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/readcdf.c 2012-04-22 18:57:16.219978162 +0200 @@ -30,7 +30,11 @@ #endif @@ -2515,8 +2513,8 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c if ((ec = strchr(c, '\n')) != NULL) *ec = '\0'; diff -u libmagic.orig/readelf.c libmagic/readelf.c ---- libmagic.orig/readelf.c 2012-04-22 19:30:43.190305058 +0800 -+++ libmagic/readelf.c 2012-04-22 19:28:57.378309534 +0800 +--- libmagic.orig/readelf.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/readelf.c 2012-04-22 18:57:16.219978162 +0200 @@ -49,7 +49,7 @@ off_t, int *, int); private int doshn(struct magic_set *, int, int, int, off_t, int, size_t, @@ -2672,8 +2670,8 @@ diff -u libmagic.orig/readelf.c libmagic/readelf.c if (fstat(fd, &st) == -1) { diff -u libmagic.orig/softmagic.c libmagic/softmagic.c ---- libmagic.orig/softmagic.c 2012-04-22 19:30:43.194304945 +0800 -+++ libmagic/softmagic.c 2012-04-22 19:28:57.286309597 +0800 +--- libmagic.orig/softmagic.c 2012-05-29 14:40:41.710960045 +0200 ++++ libmagic/softmagic.c 2012-05-29 14:34:31.900417647 +0200 @@ -41,6 +41,11 @@ #include <stdlib.h> #include <time.h> @@ -2860,7 +2858,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c } } -@@ -1669,6 +1642,65 @@ +@@ -1669,6 +1642,42 @@ return file_strncmp(a, b, len, flags); } @@ -2876,29 +2874,6 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c + + for (i=0; i<Z_STRLEN_P(pattern); i++, j++) { + switch (Z_STRVAL_P(pattern)[i]) { -+ case '?': -+ t[j] = '.'; -+ break; -+ case '*': -+ t[j++] = '.'; -+ t[j] = '*'; -+ break; -+ case '.': -+ t[j++] = '\\'; -+ t[j] = '.'; -+ break; -+ case '\\': -+ t[j++] = '\\'; -+ t[j] = '\\'; -+ break; -+ case '(': -+ t[j++] = '\\'; -+ t[j] = '('; -+ break; -+ case ')': -+ t[j++] = '\\'; -+ t[j] = ')'; -+ break; + case '~': + t[j++] = '\\'; + t[j] = '~'; @@ -2926,7 +2901,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c private int magiccheck(struct magic_set *ms, struct magic *m) { -@@ -1825,67 +1857,163 @@ +@@ -1825,67 +1834,163 @@ break; } case FILE_REGEX: { @@ -2937,23 +2912,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c - if (ms->search.s == NULL) - return 0; - -+ zval *pattern; -+ int options = 0; -+ pcre_cache_entry *pce; -+ TSRMLS_FETCH(); -+ -+ MAKE_STD_ZVAL(pattern); -+ ZVAL_STRINGL(pattern, (char *)m->value.s, m->vallen, 0); -+ -+ options |= PCRE_MULTILINE; -+ -+ if (m->str_flags & STRING_IGNORE_CASE) { -+ options |= PCRE_CASELESS; -+ } -+ -+ convert_libmagic_pattern(pattern, options); -+ - l = 0; +- l = 0; - rc = regcomp(&rx, m->value.s, - REG_EXTENDED|REG_NEWLINE| - ((m->str_flags & STRING_IGNORE_CASE) ? REG_ICASE : 0)); @@ -2970,6 +2929,23 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c - size_t l = ms->search.s_len - 1; - char c = ms->search.s[l]; - ((char *)(intptr_t)ms->search.s)[l] = '\0'; ++ zval *pattern; ++ int options = 0; ++ pcre_cache_entry *pce; ++ TSRMLS_FETCH(); ++ ++ MAKE_STD_ZVAL(pattern); ++ ZVAL_STRINGL(pattern, (char *)m->value.s, m->vallen, 0); ++ ++ options |= PCRE_MULTILINE; ++ ++ if (m->str_flags & STRING_IGNORE_CASE) { ++ options |= PCRE_CASELESS; ++ } ++ ++ convert_libmagic_pattern(pattern, options); ++ ++ l = v = 0; +#if (PHP_MAJOR_VERSION < 6) + if ((pce = pcre_get_compiled_regex_cache(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern) TSRMLS_CC)) == NULL) { #else |