1
1
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
2
2
--- libmagic.orig/apprentice.c Tue Nov 19 22:01:12 2013
3
- +++ libmagic/apprentice.c Fri Oct 3 22:48:34 2014
3
+ +++ libmagic/apprentice.c Sun Dec 28 21:52:05 2014
4
4
@@ -29,6 +29,8 @@
5
5
* apprentice - make one pass through /etc/magic, learning its secrets.
6
6
*/
@@ -411,7 +411,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
411
411
continue;
412
412
}
413
413
if (files >= maxfiles) {
414
- @@ -1171,23 +1195,23 @@
414
+ @@ -1171,23 +1195,22 @@
415
415
maxfiles = (maxfiles + 1) * 2;
416
416
mlen = maxfiles * sizeof(*filearr);
417
417
if ((filearr = CAST(char **,
@@ -420,7 +420,6 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
420
420
file_oomem(ms, mlen);
421
421
- free(mfn);
422
422
- closedir(dir);
423
- + efree(mfn);
424
423
+ php_stream_closedir(dir);
425
424
errs++;
426
425
goto out;
@@ -442,7 +441,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
442
441
} else
443
442
load_1(ms, action, fn, &errs, mset);
444
443
if (errs)
445
- @@ -1226,9 +1250 ,9 @@
444
+ @@ -1226,9 +1249 ,9 @@
446
445
if (errs) {
447
446
for (j = 0; j < MAGIC_SETS; j++) {
448
447
if (map->magic[j])
@@ -454,7 +453,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
454
453
return NULL;
455
454
}
456
455
return map;
457
- @@ -1248,7 +1272 ,7 @@
456
+ @@ -1248,7 +1271 ,7 @@
458
457
* the sign extension must have happened.
459
458
*/
460
459
case FILE_BYTE:
@@ -463,7 +462,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
463
462
break;
464
463
case FILE_SHORT:
465
464
case FILE_BESHORT:
466
- @@ -1516,7 +1540 ,7 @@
465
+ @@ -1516,7 +1539 ,7 @@
467
466
if (me->cont_count == me->max_count) {
468
467
struct magic *nm;
469
468
size_t cnt = me->max_count + ALLOC_CHUNK;
@@ -472,7 +471,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
472
471
sizeof(*nm) * cnt))) == NULL) {
473
472
file_oomem(ms, sizeof(*nm) * cnt);
474
473
return -1;
475
- @@ -1531,7 +1555 ,7 @@
474
+ @@ -1531,7 +1554 ,7 @@
476
475
static const size_t len = sizeof(*m) * ALLOC_CHUNK;
477
476
if (me->mp != NULL)
478
477
return 1;
@@ -481,7 +480,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
481
480
file_oomem(ms, len);
482
481
return -1;
483
482
}
484
- @@ -1704,7 +1728 ,7 @@
483
+ @@ -1704,7 +1727 ,7 @@
485
484
m->type = get_standard_integer_type(l, &l);
486
485
else if (*l == 's' && !isalpha((unsigned char)l[1])) {
487
486
m->type = FILE_STRING;
@@ -490,7 +489,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
490
489
}
491
490
}
492
491
}
493
- @@ -1717,6 +1741 ,10 @@
492
+ @@ -1717,6 +1740 ,10 @@
494
493
if (m->type == FILE_INVALID) {
495
494
if (ms->flags & MAGIC_CHECK)
496
495
file_magwarn(ms, "type `%s' invalid", l);
@@ -501,7 +500,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
501
500
return -1;
502
501
}
503
502
504
- @@ -1725,7 +1753 ,7 @@
503
+ @@ -1725,7 +1752 ,7 @@
505
504
506
505
m->mask_op = 0;
507
506
if (*l == '~') {
@@ -510,7 +509,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
510
509
m->mask_op |= FILE_OPINVERSE;
511
510
else if (ms->flags & MAGIC_CHECK)
512
511
file_magwarn(ms, "'~' invalid for string types");
513
- @@ -1734,7 +1762 ,7 @@
512
+ @@ -1734,7 +1761 ,7 @@
514
513
m->str_range = 0;
515
514
m->str_flags = m->type == FILE_PSTRING ? PSTRING_1_LE : 0;
516
515
if ((op = get_op(*l)) != -1) {
@@ -519,7 +518,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
519
518
uint64_t val;
520
519
++l;
521
520
m->mask_op |= op;
522
- @@ -1925,11 +1953 ,6 @@
521
+ @@ -1925,11 +1952 ,6 @@
523
522
if (check_format(ms, m) == -1)
524
523
return -1;
525
524
}
@@ -531,7 +530,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
531
530
m->mimetype[0] = '\0'; /* initialise MIME type to none */
532
531
return 0;
533
532
}
534
- @@ -2575,59 +2598 ,76 @@
533
+ @@ -2575,59 +2597 ,76 @@
535
534
private struct magic_map *
536
535
apprentice_map(struct magic_set *ms, const char *fn)
537
536
{
@@ -629,7 +628,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
629
628
if (*ptr != MAGICNO) {
630
629
if (swap4(*ptr) != MAGICNO) {
631
630
file_error(ms, 0, "bad magic in `%s'", dbname);
632
- @@ -2641,17 +2681 ,29 @@
631
+ @@ -2641,17 +2680 ,29 @@
633
632
else
634
633
version = ptr[1];
635
634
if (version != VERSIONNO) {
@@ -667,7 +666,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
667
666
}
668
667
map->magic[0] = CAST(struct magic *, map->p) + 1;
669
668
nentries = 0;
670
- @@ -2664,22 +2716 ,29 @@
669
+ @@ -2664,22 +2715 ,29 @@
671
670
map->magic[i + 1] = map->magic[i] + map->nmagic[i];
672
671
nentries += map->nmagic[i];
673
672
}
@@ -702,7 +701,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
702
701
return NULL;
703
702
}
704
703
705
- @@ -2700,14 +2759 ,19 @@
704
+ @@ -2700,14 +2758 ,19 @@
706
705
char *dbname;
707
706
int rv = -1;
708
707
uint32_t i;
@@ -725,7 +724,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
725
724
file_error(ms, errno, "cannot open `%s'", dbname);
726
725
goto out;
727
726
}
728
- @@ -2717,31 +2781 ,33 @@
727
+ @@ -2717,31 +2780 ,33 @@
729
728
goto out;
730
729
}
731
730
@@ -765,15 +764,15 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
765
764
return rv;
766
765
}
767
766
768
- @@ -2754,6 +2820 ,7 @@
767
+ @@ -2754,6 +2819 ,7 @@
769
768
{
770
769
const char *p, *q;
771
770
char *buf;
772
771
+ TSRMLS_FETCH();
773
772
774
773
if (strip) {
775
774
if ((p = strrchr(fn, '/')) != NULL)
776
- @@ -2775,16 +2842 ,18 @@
775
+ @@ -2775,16 +2841 ,18 @@
777
776
q++;
778
777
/* Compatibility with old code that looked in .mime */
779
778
if (ms->flags & MAGIC_MIME) {
@@ -798,7 +797,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
798
797
799
798
/* Compatibility with old code that looked in .mime */
800
799
if (strstr(p, ".mime") != NULL)
801
- @@ -2874,7 +2943 ,7 @@
800
+ @@ -2874,7 +2942 ,7 @@
802
801
m->offset = swap4((uint32_t)m->offset);
803
802
m->in_offset = swap4((uint32_t)m->in_offset);
804
803
m->lineno = swap4((uint32_t)m->lineno);
@@ -809,7 +808,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
809
808
}
810
809
diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
811
810
--- libmagic.orig/ascmagic.c Thu Feb 13 00:20:53 2014
812
- +++ libmagic/ascmagic.c Fri Feb 21 00:21:27 2014
811
+ +++ libmagic/ascmagic.c Sun Nov 9 19:16:18 2014
813
812
@@ -139,7 +139,7 @@
814
813
/* malloc size is a conservative overestimate; could be
815
814
improved, or at least realloced after conversion. */
@@ -831,7 +830,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
831
830
}
832
831
diff -u libmagic.orig/cdf.c libmagic/cdf.c
833
832
--- libmagic.orig/cdf.c Tue Feb 26 17:20:42 2013
834
- +++ libmagic/cdf.c Fri Oct 3 22:48:34 2014
833
+ +++ libmagic/cdf.c Mon Nov 10 13:46:45 2014
835
834
@@ -35,7 +35,7 @@
836
835
#include "file.h"
837
836
@@ -1052,7 +1051,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c
1052
1051
} else {
1053
1052
diff -u libmagic.orig/cdf.h libmagic/cdf.h
1054
1053
--- libmagic.orig/cdf.h Thu Jun 21 00:19:55 2012
1055
- +++ libmagic/cdf.h Thu Jun 5 18:05:33 2014
1054
+ +++ libmagic/cdf.h Sun Nov 9 19:16:18 2014
1056
1055
@@ -35,10 +35,12 @@
1057
1056
#ifndef _H_CDF_
1058
1057
#define _H_CDF_
@@ -1105,7 +1104,7 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h
1105
1104
int cdf_read_summary_info(const cdf_info_t *, const cdf_header_t *,
1106
1105
diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c
1107
1106
--- libmagic.orig/cdf_time.c Thu Jun 21 00:18:33 2012
1108
- +++ libmagic/cdf_time.c Fri Feb 21 00:21:27 2014
1107
+ +++ libmagic/cdf_time.c Sun Nov 9 19:16:18 2014
1109
1108
@@ -96,7 +96,7 @@
1110
1109
}
1111
1110
@@ -1165,7 +1164,7 @@ diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c
1165
1164
static const char *ref = "Sat Apr 23 01:30:00 1977";
1166
1165
diff -u libmagic.orig/compress.c libmagic/compress.c
1167
1166
--- libmagic.orig/compress.c Sun Jan 5 16:55:21 2014
1168
- +++ libmagic/compress.c Fri Feb 21 00:21:27 2014
1167
+ +++ libmagic/compress.c Mon Nov 10 13:46:45 2014
1169
1168
@@ -32,6 +32,7 @@
1170
1169
* uncompress(method, old, n, newch) - uncompress old into new,
1171
1170
* using method, return sizeof new
@@ -1328,7 +1327,7 @@ diff -u libmagic.orig/compress.c libmagic/compress.c
1328
1327
+ #endif /* if PHP_FILEINFO_UNCOMPRESS */
1329
1328
diff -u libmagic.orig/file.h libmagic/file.h
1330
1329
--- libmagic.orig/file.h Thu Feb 13 00:20:53 2014
1331
- +++ libmagic/file.h Fri Feb 21 00:21:27 2014
1330
+ +++ libmagic/file.h Mon Nov 10 13:46:45 2014
1332
1331
@@ -33,11 +33,9 @@
1333
1332
#ifndef __file_h__
1334
1333
#define __file_h__
@@ -1503,7 +1502,7 @@ diff -u libmagic.orig/file.h libmagic/file.h
1503
1502
#endif /* __file_h__ */
1504
1503
diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
1505
1504
--- libmagic.orig/fsmagic.c Sun Dec 1 20:22:13 2013
1506
- +++ libmagic/fsmagic.c Fri Feb 21 00:21:27 2014
1505
+ +++ libmagic/fsmagic.c Mon Nov 10 13:46:45 2014
1507
1506
@@ -59,27 +59,21 @@
1508
1507
# define minor(dev) ((dev) & 0xff)
1509
1508
#endif
@@ -1828,7 +1827,7 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
1828
1827
}
1829
1828
diff -u libmagic.orig/funcs.c libmagic/funcs.c
1830
1829
--- libmagic.orig/funcs.c Thu Feb 13 00:20:53 2014
1831
- +++ libmagic/funcs.c Fri Oct 3 22:48:34 2014
1830
+ +++ libmagic/funcs.c Mon Nov 10 13:46:45 2014
1832
1831
@@ -27,7 +27,7 @@
1833
1832
#include "file.h"
1834
1833
@@ -2168,7 +2167,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c
2168
2167
}
2169
2168
diff -u libmagic.orig/magic.c libmagic/magic.c
2170
2169
--- libmagic.orig/magic.c Sun Dec 1 20:22:13 2013
2171
- +++ libmagic/magic.c Fri Feb 21 00:21:27 2014
2170
+ +++ libmagic/magic.c Mon Nov 10 13:46:45 2014
2172
2171
@@ -25,11 +25,6 @@
2173
2172
* SUCH DAMAGE.
2174
2173
*/
@@ -2506,8 +2505,17 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
2506
2505
public const char *
2507
2506
magic_error(struct magic_set *ms)
2508
2507
diff -u libmagic.orig/magic.h libmagic/magic.h
2509
- --- libmagic.orig/magic.h Wed Feb 19 10:53:11 2014
2510
- +++ libmagic/magic.h Fri Feb 21 00:21:27 2014
2508
+ --- libmagic.orig/magic.h Tue Feb 11 16:30:44 2014
2509
+ +++ libmagic/magic.h Sun Nov 9 19:16:18 2014
2510
+ @@ -75,7 +75,7 @@
2511
+ #define MAGIC_NO_CHECK_FORTRAN 0x000000 /* Don't check ascii/fortran */
2512
+ #define MAGIC_NO_CHECK_TROFF 0x000000 /* Don't check ascii/troff */
2513
+
2514
+ - #define MAGIC_VERSION 516 /* This implementation */
2515
+ + #define MAGIC_VERSION 517 /* This implementation */
2516
+
2517
+
2518
+ #ifdef __cplusplus
2511
2519
@@ -88,6 +88,7 @@
2512
2520
2513
2521
const char *magic_getpath(const char *, int);
@@ -2526,7 +2534,7 @@ diff -u libmagic.orig/magic.h libmagic/magic.h
2526
2534
2527
2535
diff -u libmagic.orig/print.c libmagic/print.c
2528
2536
--- libmagic.orig/print.c Tue Feb 26 19:25:00 2013
2529
- +++ libmagic/print.c Fri Feb 21 00:21:27 2014
2537
+ +++ libmagic/print.c Tue Dec 30 20:12:29 2014
2530
2538
@@ -28,13 +28,17 @@
2531
2539
/*
2532
2540
* print.c - debugging printout routines
@@ -2545,7 +2553,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
2545
2553
#include <string.h>
2546
2554
#include <stdarg.h>
2547
2555
#include <stdlib.h>
2548
- @@ -43,188 +47,28 @@
2556
+ @@ -43,188 +47,31 @@
2549
2557
#endif
2550
2558
#include <time.h>
2551
2559
@@ -2724,7 +2732,8 @@ diff -u libmagic.orig/print.c libmagic/print.c
2724
2732
file_magwarn(struct magic_set *ms, const char *f, ...)
2725
2733
{
2726
2734
va_list va;
2727
- + char *expanded_format;
2735
+ + char *expanded_format = NULL;
2736
+ + int expanded_len;
2728
2737
+ TSRMLS_FETCH();
2729
2738
2730
2739
- /* cuz we use stdout for most, stderr here */
@@ -2736,17 +2745,19 @@ diff -u libmagic.orig/print.c libmagic/print.c
2736
2745
- (void) fprintf(stderr, "Warning: ");
2737
2746
va_start(va, f);
2738
2747
- (void) vfprintf(stderr, f, va);
2739
- + if ( vasprintf(&expanded_format, f, va)); /* silence */
2748
+ + expanded_len = vasprintf(&expanded_format, f, va);
2740
2749
va_end(va);
2741
2750
- (void) fputc('\n', stderr);
2742
2751
+
2743
- + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Warning: %s", expanded_format);
2752
+ + if (expanded_len >= 0 && expanded_format) {
2753
+ + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Warning: %s", expanded_format);
2744
2754
+
2745
- + free(expanded_format);
2755
+ + free(expanded_format);
2756
+ + }
2746
2757
}
2747
2758
2748
2759
protected const char *
2749
- @@ -235,7 +79 ,7 @@
2760
+ @@ -235,7 +82 ,7 @@
2750
2761
struct tm *tm;
2751
2762
2752
2763
if (flags & FILE_T_WINDOWS) {
@@ -2757,7 +2768,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
2757
2768
}
2758
2769
diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
2759
2770
--- libmagic.orig/readcdf.c Tue Jan 7 04:13:42 2014
2760
- +++ libmagic/readcdf.c Sat Oct 25 11:50:04 2014
2771
+ +++ libmagic/readcdf.c Sun Nov 9 19:16:18 2014
2761
2772
@@ -26,11 +26,15 @@
2762
2773
#include "file.h"
2763
2774
@@ -2975,7 +2986,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
2975
2986
if (str != NULL) {
2976
2987
diff -u libmagic.orig/readelf.c libmagic/readelf.c
2977
2988
--- libmagic.orig/readelf.c Tue Nov 5 16:44:01 2013
2978
- +++ libmagic/readelf.c Sat Oct 25 11:50:04 2014
2989
+ +++ libmagic/readelf.c Wed Dec 10 13:13:17 2014
2979
2990
@@ -48,8 +48,8 @@
2980
2991
private int dophn_exec(struct magic_set *, int, int, int, off_t, int, size_t,
2981
2992
off_t, int *, int);
@@ -3213,7 +3224,7 @@ diff -u libmagic.orig/readelf.c libmagic/readelf.c
3213
3224
if (fstat(fd, &st) == -1) {
3214
3225
diff -u libmagic.orig/readelf.h libmagic/readelf.h
3215
3226
--- libmagic.orig/readelf.h Tue Nov 5 16:41:56 2013
3216
- +++ libmagic/readelf.h Fri Feb 21 00:21:27 2014
3227
+ +++ libmagic/readelf.h Sun Nov 9 19:16:18 2014
3217
3228
@@ -44,9 +44,17 @@
3218
3229
typedef uint32_t Elf32_Word;
3219
3230
typedef uint8_t Elf32_Char;
@@ -3234,7 +3245,7 @@ diff -u libmagic.orig/readelf.h libmagic/readelf.h
3234
3245
typedef uint8_t Elf64_Char;
3235
3246
diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3236
3247
--- libmagic.orig/softmagic.c Thu Feb 13 00:20:53 2014
3237
- +++ libmagic/softmagic.c Mon Aug 4 14:58:55 2014
3248
+ +++ libmagic/softmagic.c Mon Nov 10 13:46:45 2014
3238
3249
@@ -50,6 +50,11 @@
3239
3250
#include <locale.h>
3240
3251
#endif
@@ -3765,7 +3776,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3765
3776
case FILE_INDIRECT:
3766
3777
diff -u libmagic.orig/strcasestr.c libmagic/strcasestr.c
3767
3778
--- libmagic.orig/strcasestr.c Thu Dec 5 17:57:50 2013
3768
- +++ libmagic/strcasestr.c Sun May 4 21:29:20 2014
3779
+ +++ libmagic/strcasestr.c Sun Nov 9 19:16:18 2014
3769
3780
@@ -37,6 +37,8 @@
3770
3781
__RCSID("$NetBSD: strncasecmp.c,v 1.2 2007/06/04 18:19:27 christos Exp $");
3771
3782
#endif /* LIBC_SCCS and not lint */
0 commit comments