@@ -951,7 +951,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
951
951
}
952
952
diff -u libmagic.orig/cdf.c libmagic/cdf.c
953
953
--- libmagic.orig/cdf.c 2017-05-08 20:10:13.000000000 +0200
954
- +++ libmagic/cdf.c 2018-11-04 00:59:30.775724767 +0100
954
+ +++ libmagic/cdf.c 2018-11-07 19:06:50.045202539 +0100
955
955
@@ -43,7 +43,17 @@
956
956
#include <err.h>
957
957
#endif
@@ -3205,7 +3205,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
3205
3205
*ec = '\0';
3206
3206
diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3207
3207
--- libmagic.orig/softmagic.c 2017-05-08 20:10:13.000000000 +0200
3208
- +++ libmagic/softmagic.c 2018-11-05 20:23:12.586762678 +0100
3208
+ +++ libmagic/softmagic.c 2018-11-10 13:08:23.811239067 +0100
3209
3209
@@ -43,6 +43,10 @@
3210
3210
#include <time.h>
3211
3211
#include "der.h"
@@ -3267,7 +3267,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3267
3267
- if (rc) {
3268
3268
- file_regerror(&rx, rc, ms);
3269
3269
+ (void)setlocale(LC_CTYPE, "C");
3270
- + pattern = zend_string_init("~%[-0-9.]*s~", sizeof("~%[-0-9.]*s~") - 1, 0);
3270
+ + pattern = zend_string_init("~%[-0-9\\ .]*s~", sizeof("~%[-0-9\\ .]*s~") - 1, 0);
3271
3271
+ if ((pce = pcre_get_compiled_regex(pattern, &re_extra, &re_options)) == NULL) {
3272
3272
+ rv = -1;
3273
3273
} else {
@@ -3303,45 +3303,24 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3303
3303
private int32_t
3304
3304
mprint(struct magic_set *ms, struct magic *m)
3305
3305
{
3306
- @@ -667,19 +657,18 @@
3307
- t = ms->offset + sizeof(double);
3308
- break;
3309
-
3310
- - case FILE_SEARCH:
3311
- case FILE_REGEX: {
3306
+ @@ -672,14 +662,10 @@
3312
3307
char *cp;
3313
3308
int rval;
3314
3309
3315
3310
- cp = strndup((const char *)ms->search.s, ms->search.rm_len);
3311
+ - if (cp == NULL) {
3312
+ - file_oomem(ms, ms->search.rm_len);
3313
+ - return -1;
3314
+ - }
3316
3315
+ cp = estrndup((const char *)ms->search.s, ms->search.rm_len);
3317
- if (cp == NULL) {
3318
- file_oomem(ms, ms->search.rm_len);
3319
- return -1;
3320
- }
3321
3316
rval = file_printf(ms, F(ms, m, "%s"),
3322
3317
file_printable(sbuf, sizeof(sbuf), cp));
3323
3318
- free(cp);
3324
3319
+ efree(cp);
3325
3320
3326
3321
if (rval == -1)
3327
3322
return -1;
3328
- @@ -691,6 +680,15 @@
3329
- break;
3330
- }
3331
-
3332
- + case FILE_SEARCH:
3333
- + if (file_printf(ms, F(ms, m, "%s"), m->value.s) == -1)
3334
- + return -1;
3335
- + if ((m->str_flags & REGEX_OFFSET_START))
3336
- + t = ms->search.offset;
3337
- + else
3338
- + t = ms->search.offset + m->vallen;
3339
- + break;
3340
- +
3341
- case FILE_DEFAULT:
3342
- case FILE_CLEAR:
3343
- if (file_printf(ms, "%s", m->desc) == -1)
3344
- @@ -1373,9 +1371,6 @@
3323
+ @@ -1373,9 +1359,6 @@
3345
3324
m->type, m->flag, offset, o, nbytes,
3346
3325
*indir_count, *name_count);
3347
3326
mdebug(offset, (char *)(void *)p, sizeof(union VALUETYPE));
@@ -3351,7 +3330,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3351
3330
}
3352
3331
3353
3332
if (m->flag & INDIR) {
3354
- @@ -1488,9 +1483 ,6 @@
3333
+ @@ -1488,9 +1471 ,6 @@
3355
3334
if ((ms->flags & MAGIC_DEBUG) != 0) {
3356
3335
mdebug(offset, (char *)(void *)p,
3357
3336
sizeof(union VALUETYPE));
@@ -3361,7 +3340,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3361
3340
}
3362
3341
}
3363
3342
3364
- @@ -1572,15 +1564 ,15 @@
3343
+ @@ -1572,15 +1552 ,15 @@
3365
3344
if (rv == 1) {
3366
3345
if ((ms->flags & MAGIC_NODESC) == 0 &&
3367
3346
file_printf(ms, F(ms, m, "%u"), offset) == -1) {
@@ -3380,7 +3359,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3380
3359
return rv;
3381
3360
3382
3361
case FILE_USE:
3383
- @@ -1703,6 +1695 ,41 @@
3362
+ @@ -1703,6 +1683 ,41 @@
3384
3363
return file_strncmp(a, b, len, flags);
3385
3364
}
3386
3365
@@ -3422,7 +3401,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
3422
3401
private int
3423
3402
magiccheck(struct magic_set *ms, struct magic *m)
3424
3403
{
3425
- @@ -1863,65 +1890 ,77 @@
3404
+ @@ -1863,65 +1878 ,77 @@
3426
3405
break;
3427
3406
}
3428
3407
case FILE_REGEX: {
0 commit comments