Skip to content

Commit 1b39d4c

Browse files
committed
libmagic: Further simplify diff
Avoid displaced lines where not necessary, use include guard and don't change called function names. Signed-off-by: Anatol Belski <ab@php.net>
1 parent 962c082 commit 1b39d4c

File tree

3 files changed

+53
-75
lines changed

3 files changed

+53
-75
lines changed

ext/fileinfo/libmagic.patch

+46-71
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
22
--- libmagic.orig/apprentice.c 2022-09-13 20:46:07.000000000 +0200
3-
+++ libmagic/apprentice.c 2022-10-02 15:56:16.390142333 +0200
4-
@@ -48,7 +48,6 @@
3+
+++ libmagic/apprentice.c 2022-10-02 20:39:14.879183555 +0200
4+
@@ -48,7 +48,9 @@
55
#ifdef QUICK
66
#include <sys/mman.h>
77
#endif
8-
-#include <dirent.h>
8+
+#ifdef HAVE_DIRENT_H
9+
#include <dirent.h>
10+
+#endif
911
#include <limits.h>
1012
#ifdef HAVE_BYTESWAP_H
1113
#include <byteswap.h>
12-
@@ -147,10 +146,7 @@
14+
@@ -147,10 +149,7 @@
1315
#endif
1416

1517
private char *mkdbname(struct magic_set *, const char *, int);
@@ -20,7 +22,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
2022
private void apprentice_unmap(struct magic_map *);
2123
private int apprentice_compile(struct magic_set *, struct magic_map *,
2224
const char *);
23-
@@ -186,6 +182,8 @@
25+
@@ -186,6 +185,8 @@
2426
{ NULL, 0, NULL }
2527
};
2628

@@ -29,7 +31,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
2931
#ifdef COMPILE_ONLY
3032

3133
int main(int, char *[]);
32-
@@ -446,21 +444,13 @@
34+
@@ -446,21 +447,13 @@
3335
struct mlist *ml;
3436

3537
mlp->map = NULL;
@@ -53,7 +55,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
5355
mlp->prev->next = ml;
5456
ml->prev = mlp->prev;
5557
ml->next = mlp;
56-
@@ -539,13 +529,19 @@
58+
@@ -539,13 +532,19 @@
5759
return;
5860
for (i = 0; i < MAGIC_SETS; i++)
5961
mlist_free(ms->mlist[i]);
@@ -77,7 +79,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
7779
}
7880

7981
protected struct magic_set *
80-
@@ -554,7 +550,7 @@
82+
@@ -554,7 +553,7 @@
8183
struct magic_set *ms;
8284
size_t i, len;
8385

@@ -86,7 +88,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
8688
sizeof(struct magic_set)))) == NULL)
8789
return NULL;
8890

89-
@@ -567,7 +563,7 @@
91+
@@ -567,7 +566,7 @@
9092
ms->o.blen = 0;
9193
len = (ms->c.len = 10) * sizeof(*ms->c.li);
9294

@@ -95,7 +97,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
9597
goto free;
9698

9799
ms->event_flags = 0;
98-
@@ -597,42 +593,28 @@
100+
@@ -597,42 +596,28 @@
99101
private void
100102
apprentice_unmap(struct magic_map *map)
101103
{
@@ -150,7 +152,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
150152
return NULL;
151153
}
152154
mlist->next = mlist->prev = mlist;
153-
@@ -653,21 +635,9 @@
155+
@@ -653,21 +638,9 @@
154156
private void
155157
mlist_free_one(struct mlist *ml)
156158
{
@@ -173,7 +175,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
173175
}
174176

175177
private void
176-
@@ -686,51 +656,6 @@
178+
@@ -686,51 +659,6 @@
177179
mlist_free_one(mlist);
178180
}
179181

@@ -225,7 +227,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
225227
/* const char *fn: list of magic files and directories */
226228
protected int
227229
file_apprentice(struct magic_set *ms, const char *fn, int action)
228-
@@ -741,12 +666,28 @@
230+
@@ -741,12 +669,28 @@
229231

230232
(void)file_reset(ms, 0);
231233

@@ -255,7 +257,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
255257
file_oomem(ms, strlen(fn));
256258
return -1;
257259
}
258-
@@ -759,7 +700,7 @@
260+
@@ -759,7 +703,7 @@
259261
mlist_free(ms->mlist[j]);
260262
ms->mlist[j] = NULL;
261263
}
@@ -264,7 +266,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
264266
return -1;
265267
}
266268
}
267-
@@ -776,7 +717,7 @@
269+
@@ -776,7 +720,7 @@
268270
fn = p;
269271
}
270272

@@ -273,7 +275,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
273275

274276
if (errs == -1) {
275277
for (i = 0; i < MAGIC_SETS; i++) {
276-
@@ -1289,7 +1230,7 @@
278+
@@ -1289,7 +1233,7 @@
277279

278280
size_t incr = mset[i].max + ALLOC_INCR;
279281
if ((mp = CAST(struct magic_entry *,
@@ -282,7 +284,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
282284
NULL) {
283285
file_oomem(ms, sizeof(*mp) * incr);
284286
return -1;
285-
@@ -1312,13 +1253,19 @@
287+
@@ -1312,13 +1256,19 @@
286288
load_1(struct magic_set *ms, int action, const char *fn, int *errs,
287289
struct magic_entry_set *mset)
288290
{
@@ -306,7 +308,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
306308
if (errno != ENOENT)
307309
file_error(ms, errno, "cannot read magic file `%s'",
308310
fn);
309-
@@ -1328,8 +1275,7 @@
311+
@@ -1328,8 +1278,7 @@
310312

311313
memset(&me, 0, sizeof(me));
312314
/* read and parse this file */
@@ -316,7 +318,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
316318
if (len == 0) /* null line, garbage, etc */
317319
continue;
318320
if (line[len - 1] == '\n') {
319-
@@ -1388,8 +1334,8 @@
321+
@@ -1388,8 +1337,8 @@
320322
}
321323
if (me.mp)
322324
(void)addentry(ms, &me, mset);
@@ -327,7 +329,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
327329
}
328330

329331
/*
330-
@@ -1474,7 +1420,7 @@
332+
@@ -1474,7 +1423,7 @@
331333
}
332334

333335
slen = sizeof(**ma) * mentrycount;
@@ -336,7 +338,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
336338
file_oomem(ms, slen);
337339
return -1;
338340
}
339-
@@ -1496,8 +1442,8 @@
341+
@@ -1496,8 +1445,8 @@
340342
if (me == NULL)
341343
return;
342344
for (i = 0; i < nme; i++)
@@ -347,7 +349,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
347349
}
348350

349351
private struct magic_map *
350-
@@ -1506,18 +1452,19 @@
352+
@@ -1506,18 +1455,19 @@
351353
int errs = 0;
352354
uint32_t i, j;
353355
size_t files = 0, maxfiles = 0;
@@ -372,7 +374,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
372374
{
373375
file_oomem(ms, sizeof(*map));
374376
return NULL;
375-
@@ -1529,52 +1476,50 @@
377+
@@ -1529,52 +1479,50 @@
376378
(void)fprintf(stderr, "%s\n", usg_hdr);
377379

378380
/* load directory or file */
@@ -444,15 +446,15 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
444446
}
445447
} else
446448
load_1(ms, action, fn, &errs, mset);
447-
@@ -1612,7 +1557,6 @@
449+
@@ -1612,7 +1560,6 @@
448450
}
449451

450452
out:
451453
- free(filearr);
452454
for (j = 0; j < MAGIC_SETS; j++)
453455
magic_entry_free(mset[j].me, mset[j].count);
454456

455-
@@ -2060,7 +2004,7 @@
457+
@@ -2060,7 +2007,7 @@
456458
if (me->cont_count == me->max_count) {
457459
struct magic *nm;
458460
size_t cnt = me->max_count + ALLOC_CHUNK;
@@ -461,7 +463,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
461463
sizeof(*nm) * cnt))) == NULL) {
462464
file_oomem(ms, sizeof(*nm) * cnt);
463465
return -1;
464-
@@ -2075,7 +2019,7 @@
466+
@@ -2075,7 +2022,7 @@
465467
static const size_t len = sizeof(*m) * ALLOC_CHUNK;
466468
if (me->mp != NULL)
467469
return 1;
@@ -470,7 +472,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
470472
file_oomem(ms, len);
471473
return -1;
472474
}
473-
@@ -2301,7 +2245,7 @@
475+
@@ -2301,7 +2248,7 @@
474476

475477
m->mask_op = 0;
476478
if (*l == '~') {
@@ -479,7 +481,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
479481
m->mask_op |= FILE_OPINVERSE;
480482
else if (ms->flags & MAGIC_CHECK)
481483
file_magwarn(ms, "'~' invalid for string types");
482-
@@ -2310,7 +2254,7 @@
484+
@@ -2310,7 +2257,7 @@
483485
m->str_range = 0;
484486
m->str_flags = m->type == FILE_PSTRING ? PSTRING_1_LE : 0;
485487
if ((op = get_op(*l)) != -1) {
@@ -488,7 +490,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
488490
int r;
489491

490492
if (op != FILE_OPDIVIDE) {
491-
@@ -2493,8 +2437,7 @@
493+
@@ -2493,8 +2440,7 @@
492494

493495
private int
494496
parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line,
@@ -498,7 +500,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
498500
{
499501
size_t i;
500502
const char *l = line;
501-
@@ -2852,13 +2795,19 @@
503+
@@ -2852,13 +2798,19 @@
502504
return -1;
503505
}
504506
if (m->type == FILE_REGEX) {
@@ -524,7 +526,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
524526
}
525527
return 0;
526528
default:
527-
@@ -3230,120 +3179,83 @@
529+
@@ -3230,120 +3182,83 @@
528530
}
529531

530532
/*
@@ -688,7 +690,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
688690
}
689691
needsbyteswap = 1;
690692
} else
691-
@@ -3353,17 +3265,29 @@
693+
@@ -3353,17 +3268,29 @@
692694
else
693695
version = ptr[1];
694696
if (version != VERSIONNO) {
@@ -727,7 +729,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
727729
}
728730
map->magic[0] = CAST(struct magic *, map->p) + 1;
729731
nentries = 0;
730-
@@ -3376,15 +3300,29 @@
732+
@@ -3376,15 +3303,29 @@
731733
map->magic[i + 1] = map->magic[i] + map->nmagic[i];
732734
nentries += map->nmagic[i];
733735
}
@@ -760,22 +762,16 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
760762
}
761763

762764
/*
763-
@@ -3395,7 +3333,6 @@
765+
@@ -3395,7 +3336,7 @@
764766
{
765767
static const size_t nm = sizeof(*map->nmagic) * MAGIC_SETS;
766768
static const size_t m = sizeof(**map->magic);
767769
- int fd = -1;
770+
+ php_stream *stream;
768771
size_t len;
769772
char *dbname;
770773
int rv = -1;
771-
@@ -3404,14 +3341,17 @@
772-
struct magic m;
773-
uint32_t h[2 + MAGIC_SETS];
774-
} hdr;
775-
+ php_stream *stream;
776-
777-
dbname = mkdbname(ms, fn, 1);
778-
774+
@@ -3410,8 +3351,10 @@
779775
if (dbname == NULL)
780776
goto out;
781777

@@ -788,7 +784,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
788784
file_error(ms, errno, "cannot open `%s'", dbname);
789785
goto out;
790786
}
791-
@@ -3420,26 +3360,25 @@
787+
@@ -3420,26 +3363,25 @@
792788
hdr.h[1] = VERSIONNO;
793789
memcpy(hdr.h + 2, map->nmagic, nm);
794790

@@ -809,21 +805,21 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
809805
}
810806
}
811807

812-
+ if (stream) {
813-
+ php_stream_close(stream);
814-
+ }
815808
rv = 0;
816809
-out2:
817810
- if (fd != -1)
818811
- (void)close(fd);
812+
+ if (stream) {
813+
+ php_stream_close(stream);
814+
+ }
819815
out:
820816
- apprentice_unmap(map);
821817
- free(dbname);
822818
+ efree(dbname);
823819
return rv;
824820
}
825821

826-
@@ -3473,17 +3412,18 @@
822+
@@ -3473,17 +3415,18 @@
827823
q++;
828824
/* Compatibility with old code that looked in .mime */
829825
if (ms->flags & MAGIC_MIME) {
@@ -849,7 +845,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
849845

850846
/* Compatibility with old code that looked in .mime */
851847
if (strstr(fn, ".mime") != NULL)
852-
@@ -3605,7 +3545,7 @@
848+
@@ -3605,7 +3548,7 @@
853849
m->offset = swap4(CAST(uint32_t, m->offset));
854850
m->in_offset = swap4(CAST(uint32_t, m->in_offset));
855851
m->lineno = swap4(CAST(uint32_t, m->lineno));
@@ -858,7 +854,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
858854
m->str_range = swap4(m->str_range);
859855
m->str_flags = swap4(m->str_flags);
860856
}
861-
@@ -3702,7 +3642,6 @@
857+
@@ -3702,7 +3645,6 @@
862858
continue;
863859
if (strcmp(ma[i].value.s, name) == 0) {
864860
v->magic = &ma[i];
@@ -1205,27 +1201,6 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h
12051201
#endif
12061202
#ifdef __DJGPP__
12071203
#define timespec timeval
1208-
diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c
1209-
--- libmagic.orig/cdf_time.c 2022-09-13 20:34:35.000000000 +0200
1210-
+++ libmagic/cdf_time.c 2022-10-02 15:56:16.390142333 +0200
1211-
@@ -152,7 +152,7 @@
1212-
#endif
1213-
#ifdef notyet
1214-
struct tm tm;
1215-
- if (gmtime_r(&ts->ts_sec, &tm) == NULL) {
1216-
+ if (php_gmtime_r(&ts->ts_sec, &tm) == NULL) {
1217-
errno = EINVAL;
1218-
return -1;
1219-
}
1220-
@@ -168,7 +168,7 @@
1221-
char *
1222-
cdf_ctime(const time_t *sec, char *buf)
1223-
{
1224-
- char *ptr = ctime_r(sec, buf);
1225-
+ char *ptr = php_ctime_r(sec, buf);
1226-
if (ptr != NULL)
1227-
return buf;
1228-
#ifdef WIN32
12291204
diff -u libmagic.orig/compress.c libmagic/compress.c
12301205
--- libmagic.orig/compress.c 2022-09-13 20:34:42.000000000 +0200
12311206
+++ libmagic/compress.c 2022-10-02 15:56:16.390142333 +0200
@@ -2665,7 +2640,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
26652640
}
26662641
return file_getbuffer(ms);
26672642
diff -u libmagic.orig/magic.h libmagic/magic.h
2668-
--- libmagic.orig/magic.h 2022-10-02 18:25:10.305221809 +0200
2643+
--- libmagic.orig/magic.h 2022-10-02 20:46:41.085566920 +0200
26692644
+++ libmagic/magic.h 2022-10-02 15:56:16.394142341 +0200
26702645
@@ -126,6 +126,7 @@
26712646

0 commit comments

Comments
 (0)