From 0ba9ae1c9972f6b58a919b35701d1a0def63198a Mon Sep 17 00:00:00 2001
From: Andrei Latchescu <andrei@davisinfo.ro>
Date: Wed, 23 Jun 2021 11:41:45 +0300
Subject: [PATCH 1/3] Fix #78987 - Memory problems running finfo::buffer
---
ext/fileinfo/libmagic/apprentice.c | 1 +
ext/fileinfo/libmagic/encoding.c | 3 +++
ext/fileinfo/libmagic/file.h | 2 ++
ext/fileinfo/libmagic/magic.c | 6 ++++++
ext/fileinfo/libmagic/magic.h | 1 +
5 files changed, 13 insertions(+)
diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c
index 03d5d89b061c..dde6a17543db 100644
--- a/ext/fileinfo/libmagic/apprentice.c
+++ b/ext/fileinfo/libmagic/apprentice.c
@@ -518,6 +518,7 @@ file_ms_alloc(int flags)
ms->elf_notes_max = FILE_ELF_NOTES_MAX;
ms->regex_max = FILE_REGEX_MAX;
ms->bytes_max = FILE_BYTES_MAX;
+ ms->encoding_max = FILE_ENCODING_MAX;
return ms;
free:
efree(ms);
diff --git a/ext/fileinfo/libmagic/encoding.c b/ext/fileinfo/libmagic/encoding.c
index 121bbd71438d..8e005d2e577c 100644
--- a/ext/fileinfo/libmagic/encoding.c
+++ b/ext/fileinfo/libmagic/encoding.c
@@ -88,6 +88,9 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
*code = "unknown";
*code_mime = "binary";
+ if (nbytes > ms->encoding_max)
+ nbytes = ms->encoding_max;
+
mlen = (nbytes + 1) * sizeof((*ubuf)[0]);
if ((*ubuf = CAST(unichar *, ecalloc(CAST(size_t, 1), mlen))) == NULL) {
file_oomem(ms, mlen);
diff --git a/ext/fileinfo/libmagic/file.h b/ext/fileinfo/libmagic/file.h
index f462622bd505..8f1169a90d27 100644
--- a/ext/fileinfo/libmagic/file.h
+++ b/ext/fileinfo/libmagic/file.h
@@ -438,12 +438,14 @@ struct magic_set {
uint16_t elf_notes_max;
uint16_t regex_max;
size_t bytes_max; /* number of bytes to read from file */
+ size_t encoding_max; /* bytes to look for encoding */
#define FILE_INDIR_MAX 50
#define FILE_NAME_MAX 30
#define FILE_ELF_SHNUM_MAX 32768
#define FILE_ELF_PHNUM_MAX 2048
#define FILE_ELF_NOTES_MAX 256
#define FILE_REGEX_MAX 8192
+#define FILE_ENCODING_MAX (64 * 1024)
};
/* Type for Unicode characters */
diff --git a/ext/fileinfo/libmagic/magic.c b/ext/fileinfo/libmagic/magic.c
index 56c8acfcace0..3e6408f614ea 100644
--- a/ext/fileinfo/libmagic/magic.c
+++ b/ext/fileinfo/libmagic/magic.c
@@ -384,6 +384,9 @@ magic_setparam(struct magic_set *ms, int param, const void *val)
case MAGIC_PARAM_BYTES_MAX:
ms->bytes_max = *CAST(const size_t *, val);
return 0;
+ case MAGIC_PARAM_ENCODING_MAX:
+ ms->encoding_max = *CAST(const size_t *, val);
+ return 0;
default:
errno = EINVAL;
return -1;
@@ -417,6 +420,9 @@ magic_getparam(struct magic_set *ms, int param, void *val)
case MAGIC_PARAM_BYTES_MAX:
*CAST(size_t *, val) = ms->bytes_max;
return 0;
+ case MAGIC_PARAM_ENCODING_MAX:
+ *(size_t *)val = ms->encoding_max;
+ return 0;
default:
errno = EINVAL;
return -1;
diff --git a/ext/fileinfo/libmagic/magic.h b/ext/fileinfo/libmagic/magic.h
index ee0aa136782d..3fed9c1f387a 100644
--- a/ext/fileinfo/libmagic/magic.h
+++ b/ext/fileinfo/libmagic/magic.h
@@ -148,6 +148,7 @@ int magic_errno(magic_t);
#define MAGIC_PARAM_ELF_NOTES_MAX 4
#define MAGIC_PARAM_REGEX_MAX 5
#define MAGIC_PARAM_BYTES_MAX 6
+#define MAGIC_PARAM_ENCODING_MAX 7
int magic_setparam(magic_t, int, const void *);
int magic_getparam(magic_t, int, void *);
From c9dfc0f4c46c35a97d2c16ebd20680fe1a885766 Mon Sep 17 00:00:00 2001
From: Andrei Latchescu <andrei@davisinfo.ro>
Date: Tue, 3 Aug 2021 09:53:30 +0300
Subject: [PATCH 2/3] Fixed non-tab spaces
---
ext/fileinfo/libmagic/apprentice.c | 270 ++++++++++++++---------------
ext/fileinfo/libmagic/encoding.c | 38 ++--
ext/fileinfo/libmagic/file.h | 30 ++--
ext/fileinfo/libmagic/magic.c | 14 +-
4 files changed, 176 insertions(+), 176 deletions(-)
diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c
index dde6a17543db..ef309a039f35 100644
--- a/ext/fileinfo/libmagic/apprentice.c
+++ b/ext/fileinfo/libmagic/apprentice.c
@@ -68,7 +68,7 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.283 2019/02/20 02:35:27 christos Exp $")
#define EATAB {while (isascii(CAST(unsigned char, *l)) && \
- isspace(CAST(unsigned char, *l))) ++l;}
+ isspace(CAST(unsigned char, *l))) ++l;}
#define LOWCASE(l) (isupper(CAST(unsigned char, l)) ? \
tolower(CAST(unsigned char, l)) : (l))
/*
@@ -128,16 +128,16 @@ const size_t file_nnames = FILE_NAMES_SIZE;
private int getvalue(struct magic_set *ms, struct magic *, const char **, int);
private int hextoint(int);
private const char *getstr(struct magic_set *, struct magic *, const char *,
- int);
+ int);
private int parse(struct magic_set *, struct magic_entry *, const char *,
- size_t, int);
+ size_t, int);
private void eatsize(const char **);
private int apprentice_1(struct magic_set *, const char *, int);
private size_t apprentice_magic_strength(const struct magic *);
private int apprentice_sort(const void *, const void *);
private void apprentice_list(struct mlist *, int );
private struct magic_map *apprentice_load(struct magic_set *,
- const char *, int);
+ const char *, int);
private struct mlist *mlist_alloc(void);
private void mlist_free(struct mlist *);
private void byteswap(struct magic *, uint32_t);
@@ -149,7 +149,7 @@ private char *mkdbname(struct magic_set *, const char *, int);
private struct magic_map *apprentice_map(struct magic_set *, const char *);
private void apprentice_unmap(struct magic_map *);
private int apprentice_compile(struct magic_set *, struct magic_map *,
- const char *);
+ const char *);
private int check_format_type(const char *, int, const char **);
private int check_format(struct magic_set *, struct magic *);
private int get_op(char);
@@ -420,8 +420,8 @@ apprentice_1(struct magic_set *ms, const char *fn, int action)
if (magicsize != FILE_MAGICSIZE) {
file_error(ms, 0, "magic element size %lu != %lu",
- CAST(unsigned long, sizeof(*map->magic[0])),
- CAST(unsigned long, FILE_MAGICSIZE));
+ CAST(unsigned long, sizeof(*map->magic[0])),
+ CAST(unsigned long, FILE_MAGICSIZE));
return -1;
}
@@ -455,7 +455,7 @@ apprentice_1(struct magic_set *ms, const char *fn, int action)
if (action == FILE_LIST) {
for (i = 0; i < MAGIC_SETS; i++) {
printf("Set %" SIZE_T_FORMAT "u:\nBinary patterns:\n",
- i);
+ i);
apprentice_list(ms->mlist[i], BINTEST);
printf("Text patterns:\n");
apprentice_list(ms->mlist[i], TEXTTEST);
@@ -491,7 +491,7 @@ file_ms_alloc(int flags)
size_t i, len;
if ((ms = CAST(struct magic_set *, ecalloc(CAST(size_t, 1u),
- sizeof(struct magic_set)))) == NULL)
+ sizeof(struct magic_set)))) == NULL)
return NULL;
if (magic_setflags(ms, flags) == -1) {
@@ -957,7 +957,7 @@ apprentice_list(struct mlist *mlist, int mode)
if ((m->flag & mode) != mode) {
/* Skip sub-tests */
while (magindex + 1 < ml->nmagic &&
- ml->magic[magindex + 1].cont_level != 0)
+ ml->magic[magindex + 1].cont_level != 0)
++magindex;
continue; /* Skip to next top-level test*/
}
@@ -967,16 +967,16 @@ apprentice_list(struct mlist *mlist, int mode)
* description/mimetype.
*/
while (magindex + 1 < ml->nmagic &&
- ml->magic[magindex + 1].cont_level != 0 &&
- *ml->magic[magindex].desc == '\0' &&
- *ml->magic[magindex].mimetype == '\0')
+ ml->magic[magindex + 1].cont_level != 0 &&
+ *ml->magic[magindex].desc == '\0' &&
+ *ml->magic[magindex].mimetype == '\0')
magindex++;
printf("Strength = %3" SIZE_T_FORMAT "u@%u: %s [%s]\n",
- apprentice_magic_strength(m),
- ml->magic[magindex].lineno,
- ml->magic[magindex].desc,
- ml->magic[magindex].mimetype);
+ apprentice_magic_strength(m),
+ ml->magic[magindex].lineno,
+ ml->magic[magindex].desc,
+ ml->magic[magindex].mimetype);
}
}
}
@@ -1045,7 +1045,7 @@ set_test_type(struct magic *mstart, struct magic *m)
/* binary test if pattern is not text */
if (file_looks_utf8(m->value.us, CAST(size_t, m->vallen), NULL,
- NULL) <= 0)
+ NULL) <= 0)
mstart->flag |= BINTEST;
else
mstart->flag |= TEXTTEST;
@@ -1071,13 +1071,13 @@ addentry(struct magic_set *ms, struct magic_entry *me,
mset[i].max += ALLOC_INCR;
if ((mp = CAST(struct magic_entry *,
- erealloc(mset[i].me, sizeof(*mp) * mset[i].max))) ==
- NULL) {
+ erealloc(mset[i].me, sizeof(*mp) * mset[i].max))) ==
+ NULL) {
file_oomem(ms, sizeof(*mp) * mset[i].max);
return -1;
}
(void)memset(&mp[mset[i].count], 0, sizeof(*mp) *
- ALLOC_INCR);
+ ALLOC_INCR);
mset[i].me = mp;
}
mset[i].me[mset[i].count++] = *me;
@@ -1131,25 +1131,25 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs,
for (i = 0; bang[i].name != NULL; i++) {
if (CAST(size_t, len - 2) > bang[i].len &&
- memcmp(bang[i].name, line + 2,
- bang[i].len) == 0)
+ memcmp(bang[i].name, line + 2,
+ bang[i].len) == 0)
break;
}
if (bang[i].name == NULL) {
file_error(ms, 0,
- "Unknown !: entry `%s'", line);
+ "Unknown !: entry `%s'", line);
(*errs)++;
continue;
}
if (me.mp == NULL) {
file_error(ms, 0,
- "No current entry for :!%s type",
+ "No current entry for :!%s type",
bang[i].name);
(*errs)++;
continue;
}
if ((*bang[i].fun)(ms, &me,
- line + bang[i].len + 2) != 0) {
+ line + bang[i].len + 2) != 0) {
(*errs)++;
continue;
}
@@ -1183,13 +1183,13 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs,
private int
cmpstrp(const void *p1, const void *p2)
{
- return strcmp(*RCAST(char *const *, p1), *RCAST(char *const *, p2));
+ return strcmp(*RCAST(char *const *, p1), *RCAST(char *const *, p2));
}
private uint32_t
set_text_binary(struct magic_set *ms, struct magic_entry *me, uint32_t nme,
- uint32_t starttest)
+ uint32_t starttest)
{
static const char text[] = "text";
static const char binary[] = "binary";
@@ -1202,19 +1202,19 @@ set_text_binary(struct magic_set *ms, struct magic_entry *me, uint32_t nme,
if ((ms->flags & MAGIC_DEBUG) == 0)
continue;
(void)fprintf(stderr, "%s%s%s: %s\n",
- me[i].mp->mimetype,
- me[i].mp->mimetype[0] == '\0' ? "" : "; ",
- me[i].mp->desc[0] ? me[i].mp->desc : "(no description)",
- me[i].mp->flag & BINTEST ? binary : text);
+ me[i].mp->mimetype,
+ me[i].mp->mimetype[0] == '\0' ? "" : "; ",
+ me[i].mp->desc[0] ? me[i].mp->desc : "(no description)",
+ me[i].mp->flag & BINTEST ? binary : text);
if (me[i].mp->flag & BINTEST) {
char *p = strstr(me[i].mp->desc, text);
if (p && (p == me[i].mp->desc ||
- isspace(CAST(unsigned char, p[-1]))) &&
- (p + len - me[i].mp->desc == MAXstring
- || (p[len] == '\0' ||
- isspace(CAST(unsigned char, p[len])))))
+ isspace(CAST(unsigned char, p[-1]))) &&
+ (p + len - me[i].mp->desc == MAXstring
+ || (p[len] == '\0' ||
+ isspace(CAST(unsigned char, p[len])))))
(void)fprintf(stderr, "*** Possible "
- "binary test for text type\n");
+ "binary test for text type\n");
}
} while (++i < nme && me[i].mp->cont_level != 0);
return i;
@@ -1226,7 +1226,7 @@ set_last_default(struct magic_set *ms, struct magic_entry *me, uint32_t nme)
uint32_t i;
for (i = 0; i < nme; i++) {
if (me[i].mp->cont_level == 0 &&
- me[i].mp->type == FILE_DEFAULT) {
+ me[i].mp->type == FILE_DEFAULT) {
while (++i < nme)
if (me[i].mp->cont_level == 0)
break;
@@ -1234,7 +1234,7 @@ set_last_default(struct magic_set *ms, struct magic_entry *me, uint32_t nme)
/* XXX - Ugh! */
ms->line = me[i].mp->lineno;
file_magwarn(ms,
- "level 0 \"default\" did not sort last");
+ "level 0 \"default\" did not sort last");
}
return;
}
@@ -1243,7 +1243,7 @@ set_last_default(struct magic_set *ms, struct magic_entry *me, uint32_t nme)
private int
coalesce_entries(struct magic_set *ms, struct magic_entry *me, uint32_t nme,
- struct magic **ma, uint32_t *nma)
+ struct magic **ma, uint32_t *nma)
{
uint32_t i, mentrycount = 0;
size_t slen;
@@ -1260,7 +1260,7 @@ coalesce_entries(struct magic_set *ms, struct magic_entry *me, uint32_t nme,
mentrycount = 0;
for (i = 0; i < nme; i++) {
(void)memcpy(*ma + mentrycount, me[i].mp,
- me[i].cont_count * sizeof(**ma));
+ me[i].cont_count * sizeof(**ma));
mentrycount += me[i].cont_count;
}
*nma = mentrycount;
@@ -1335,7 +1335,7 @@ apprentice_load(struct magic_set *ms, const char *fn, int action)
maxfiles = (maxfiles + 1) * 2;
mlen = maxfiles * sizeof(*filearr);
if ((filearr = CAST(char **,
- erealloc(filearr, mlen))) == NULL) {
+ erealloc(filearr, mlen))) == NULL) {
file_oomem(ms, mlen);
php_stream_closedir(dir);
errs++;
@@ -1369,7 +1369,7 @@ apprentice_load(struct magic_set *ms, const char *fn, int action)
}
if (mset[j].me)
qsort(mset[j].me, mset[j].count, sizeof(*mset[j].me),
- apprentice_sort);
+ apprentice_sort);
/*
* Make sure that any level 0 "default" line is last
@@ -1379,7 +1379,7 @@ apprentice_load(struct magic_set *ms, const char *fn, int action)
/* coalesce per file arrays into a single one */
if (coalesce_entries(ms, mset[j].me, mset[j].count,
- &map->magic[j], &map->nmagic[j]) == -1) {
+ &map->magic[j], &map->nmagic[j]) == -1) {
errs++;
goto out;
}
@@ -1466,8 +1466,8 @@ file_signextend(struct magic_set *ms, struct magic *m, uint64_t v)
break;
default:
if (ms->flags & MAGIC_CHECK)
- file_magwarn(ms, "cannot happen: m->type=%d\n",
- m->type);
+ file_magwarn(ms, "cannot happen: m->type=%d\n",
+ m->type);
return ~0U;
}
}
@@ -1481,9 +1481,9 @@ string_modifier_check(struct magic_set *ms, struct magic *m)
return 0;
if ((m->type != FILE_REGEX || (m->str_flags & REGEX_LINE_COUNT) == 0) &&
- (m->type != FILE_PSTRING && (m->str_flags & PSTRING_LEN) != 0)) {
+ (m->type != FILE_PSTRING && (m->str_flags & PSTRING_LEN) != 0)) {
file_magwarn(ms,
- "'/BHhLl' modifiers are only allowed for pascal strings\n");
+ "'/BHhLl' modifiers are only allowed for pascal strings\n");
return -1;
}
switch (m->type) {
@@ -1491,7 +1491,7 @@ string_modifier_check(struct magic_set *ms, struct magic *m)
case FILE_LESTRING16:
if (m->str_flags != 0) {
file_magwarn(ms,
- "no modifiers allowed for 16-bit strings\n");
+ "no modifiers allowed for 16-bit strings\n");
return -1;
}
break;
@@ -1499,16 +1499,16 @@ string_modifier_check(struct magic_set *ms, struct magic *m)
case FILE_PSTRING:
if ((m->str_flags & REGEX_OFFSET_START) != 0) {
file_magwarn(ms,
- "'/%c' only allowed on regex and search\n",
- CHAR_REGEX_OFFSET_START);
+ "'/%c' only allowed on regex and search\n",
+ CHAR_REGEX_OFFSET_START);
return -1;
}
break;
case FILE_SEARCH:
if (m->str_range == 0) {
file_magwarn(ms,
- "missing range; defaulting to %d\n",
- STRING_DEFAULT_RANGE);
+ "missing range; defaulting to %d\n",
+ STRING_DEFAULT_RANGE);
m->str_range = STRING_DEFAULT_RANGE;
return -1;
}
@@ -1516,18 +1516,18 @@ string_modifier_check(struct magic_set *ms, struct magic *m)
case FILE_REGEX:
if ((m->str_flags & STRING_COMPACT_WHITESPACE) != 0) {
file_magwarn(ms, "'/%c' not allowed on regex\n",
- CHAR_COMPACT_WHITESPACE);
+ CHAR_COMPACT_WHITESPACE);
return -1;
}
if ((m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE) != 0) {
file_magwarn(ms, "'/%c' not allowed on regex\n",
- CHAR_COMPACT_OPTIONAL_WHITESPACE);
+ CHAR_COMPACT_OPTIONAL_WHITESPACE);
return -1;
}
break;
default:
file_magwarn(ms, "coding error: m->type=%d\n",
- m->type);
+ m->type);
return -1;
}
return 0;
@@ -1576,7 +1576,7 @@ get_cond(const char *l, const char **t)
for (p = cond_tbl; p->len; p++) {
if (strncmp(l, p->name, p->len) == 0 &&
- isspace(CAST(unsigned char, l[p->len]))) {
+ isspace(CAST(unsigned char, l[p->len]))) {
if (t)
*t = l + p->len;
break;
@@ -1652,7 +1652,7 @@ parse_indirect_modifier(struct magic_set *ms, struct magic *m, const char **lp)
private void
parse_op_modifier(struct magic_set *ms, struct magic *m, const char **lp,
- int op)
+ int op)
{
const char *l = *lp;
char *t;
@@ -1773,7 +1773,7 @@ parse_string_modifier(struct magic_set *ms, struct magic *m, const char **lp)
*/
private int
parse(struct magic_set *ms, struct magic_entry *me, const char *line,
- size_t lineno, int action)
+ size_t lineno, int action)
{
#ifdef ENABLE_CONDITIONALS
static uint32_t last_cont_level = 0;
@@ -1814,13 +1814,13 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
diff = CAST(int32_t, cont_level) - CAST(int32_t, m->cont_level);
if (diff > 1)
file_magwarn(ms, "New continuation level %u is more "
- "than one larger than current level %u", cont_level,
- m->cont_level);
+ "than one larger than current level %u", cont_level,
+ m->cont_level);
if (me->cont_count == me->max_count) {
struct magic *nm;
size_t cnt = me->max_count + ALLOC_CHUNK;
if ((nm = CAST(struct magic *, erealloc(me->mp,
- sizeof(*nm) * cnt))) == NULL) {
+ sizeof(*nm) * cnt))) == NULL) {
file_oomem(ms, sizeof(*nm) * cnt);
return -1;
}
@@ -1848,9 +1848,9 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
m->lineno = CAST(uint32_t, lineno);
if (*l == '&') { /* m->cont_level == 0 checked below. */
- ++l; /* step over */
- m->flag |= OFFADD;
- }
+ ++l; /* step over */
+ m->flag |= OFFADD;
+ }
if (*l == '(') {
++l; /* step over */
m->flag |= INDIR;
@@ -1871,12 +1871,12 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
/* get offset, then skip over it */
m->offset = CAST(int32_t, strtol(l, &t, 0));
- if (l == t) {
+ if (l == t) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "offset `%s' invalid", l);
return -1;
}
- l = t;
+ l = t;
if (m->flag & INDIR) {
m->in_type = FILE_LONG;
@@ -1938,8 +1938,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
default:
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms,
- "indirect offset type `%c' invalid",
- *l);
+ "indirect offset type `%c' invalid",
+ *l);
return -1;
}
l++;
@@ -1962,16 +1962,16 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
if (l == t) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms,
- "in_offset `%s' invalid", l);
+ "in_offset `%s' invalid", l);
return -1;
}
l = t;
}
if (*l++ != ')' ||
- ((m->in_op & FILE_OPINDIRECT) && *l++ != ')')) {
+ ((m->in_op & FILE_OPINDIRECT) && *l++ != ')')) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms,
- "missing ')' in indirect offset");
+ "missing ')' in indirect offset");
return -1;
}
}
@@ -2022,7 +2022,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
if (*l == 'd')
m->type = get_standard_integer_type(l, &l);
else if (*l == 's'
- && !isalpha(CAST(unsigned char, l[1]))) {
+ && !isalpha(CAST(unsigned char, l[1]))) {
m->type = FILE_STRING;
++l;
}
@@ -2060,8 +2060,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
if (op != FILE_OPDIVIDE) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms,
- "invalid string/indirect op: "
- "`%c'", *t);
+ "invalid string/indirect op: "
+ "`%c'", *t);
return -1;
}
@@ -2084,12 +2084,12 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
switch (*l) {
case '>':
case '<':
- m->reln = *l;
- ++l;
+ m->reln = *l;
+ ++l;
if (*l == '=') {
if (ms->flags & MAGIC_CHECK) {
file_magwarn(ms, "%c= not supported",
- m->reln);
+ m->reln);
return -1;
}
++l;
@@ -2099,8 +2099,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
case '&':
case '^':
case '=':
- m->reln = *l;
- ++l;
+ m->reln = *l;
+ ++l;
if (*l == '=') {
/* HP compat: ignore &= etc. */
++l;
@@ -2111,9 +2111,9 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
++l;
break;
default:
- m->reln = '='; /* the default relation */
+ m->reln = '='; /* the default relation */
if (*l == 'x' && ((isascii(CAST(unsigned char, l[1])) &&
- isspace(CAST(unsigned char, l[1]))) || !l[1])) {
+ isspace(CAST(unsigned char, l[1]))) || !l[1])) {
m->reln = *l;
++l;
}
@@ -2151,11 +2151,11 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line,
file_magwarn(ms, "description `%s' truncated", m->desc);
}
- /*
+ /*
* We only do this check while compiling, or if any of the magic
* files were not compiled.
- */
- if (ms->flags & MAGIC_CHECK) {
+ */
+ if (ms->flags & MAGIC_CHECK) {
if (check_format(ms, m) == -1)
return -1;
}
@@ -2177,13 +2177,13 @@ parse_strength(struct magic_set *ms, struct magic_entry *me, const char *line)
if (m->factor_op != FILE_FACTOR_OP_NONE) {
file_magwarn(ms,
- "Current entry already has a strength type: %c %d",
- m->factor_op, m->factor);
+ "Current entry already has a strength type: %c %d",
+ m->factor_op, m->factor);
return -1;
}
if (m->type == FILE_NAME) {
file_magwarn(ms, "%s: Strength setting is not supported in "
- "\"name\" magic entries", m->value.s);
+ "\"name\" magic entries", m->value.s);
return -1;
}
EATAB;
@@ -2212,7 +2212,7 @@ parse_strength(struct magic_set *ms, struct magic_entry *me, const char *line)
m->factor = CAST(uint8_t, factor);
if (m->factor == 0 && m->factor_op == FILE_FACTOR_OP_DIV) {
file_magwarn(ms, "Cannot have factor op `%c' and factor %u",
- m->factor_op, m->factor);
+ m->factor_op, m->factor);
goto out;
}
return 0;
@@ -2230,7 +2230,7 @@ goodchar(unsigned char x, const char *extra)
private int
parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line,
- zend_off_t off, size_t len, const char *name, const char *extra, int nt)
+ zend_off_t off, size_t len, const char *name, const char *extra, int nt)
{
size_t i;
const char *l = line;
@@ -2240,13 +2240,13 @@ parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line,
if (buf[0] != '\0') {
len = nt ? strlen(buf) : len;
file_magwarn(ms, "Current entry already has a %s type "
- "`%.*s', new type `%s'", name, CAST(int, len), buf, l);
+ "`%.*s', new type `%s'", name, CAST(int, len), buf, l);
return -1;
}
if (*m->desc == '\0') {
file_magwarn(ms, "Current entry does not yet have a "
- "description for adding a %s type", name);
+ "description for adding a %s type", name);
return -1;
}
@@ -2259,11 +2259,11 @@ parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line,
buf[len - 1] = '\0';
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "%s type `%s' truncated %"
- SIZE_T_FORMAT "u", name, line, i);
+ SIZE_T_FORMAT "u", name, line, i);
} else {
if (!isspace(CAST(unsigned char, *l)) && !goodchar(*l, extra))
file_magwarn(ms, "%s type `%s' has bad char '%c'",
- name, line, *l);
+ name, line, *l);
if (nt)
buf[i] = '\0';
}
@@ -2285,8 +2285,8 @@ parse_apple(struct magic_set *ms, struct magic_entry *me, const char *line)
struct magic *m = &me->mp[0];
return parse_extra(ms, me, line,
- CAST(off_t, offsetof(struct magic, apple)),
- sizeof(m->apple), "APPLE", "!+-./?", 0);
+ CAST(off_t, offsetof(struct magic, apple)),
+ sizeof(m->apple), "APPLE", "!+-./?", 0);
}
/*
@@ -2298,8 +2298,8 @@ parse_ext(struct magic_set *ms, struct magic_entry *me, const char *line)
struct magic *m = &me->mp[0];
return parse_extra(ms, me, line,
- CAST(off_t, offsetof(struct magic, ext)),
- sizeof(m->ext), "EXTENSION", ",!+-/@?_$", 0);
+ CAST(off_t, offsetof(struct magic, ext)),
+ sizeof(m->ext), "EXTENSION", ",!+-/@?_$", 0);
}
/*
@@ -2312,8 +2312,8 @@ parse_mime(struct magic_set *ms, struct magic_entry *me, const char *line)
struct magic *m = &me->mp[0];
return parse_extra(ms, me, line,
- CAST(zend_off_t, offsetof(struct magic, mimetype)),
- sizeof(m->mimetype), "MIME", "+-/.$?:{}", 1);
+ CAST(zend_off_t, offsetof(struct magic, mimetype)),
+ sizeof(m->mimetype), "MIME", "+-/.$?:{}", 1);
}
private int
@@ -2529,12 +2529,12 @@ check_format(struct magic_set *ms, struct magic *m)
if (m->type >= file_nformats) {
file_magwarn(ms, "Internal error inconsistency between "
- "m->type and format strings");
+ "m->type and format strings");
return -1;
}
if (file_formats[m->type] == FILE_FMT_NONE) {
file_magwarn(ms, "No format string for `%s' with description "
- "`%s'", m->desc, file_names[m->type]);
+ "`%s'", m->desc, file_names[m->type]);
return -1;
}
@@ -2545,17 +2545,17 @@ check_format(struct magic_set *ms, struct magic *m)
* string is not one character long
*/
file_magwarn(ms, "Printf format is %s for type "
- "`%s' in description `%s'", estr,
- file_names[m->type], m->desc);
+ "`%s' in description `%s'", estr,
+ file_names[m->type], m->desc);
return -1;
}
for (; *ptr; ptr++) {
if (*ptr == '%') {
file_magwarn(ms,
- "Too many format strings (should have at most one) "
- "for `%s' with description `%s'",
- file_names[m->type], m->desc);
+ "Too many format strings (should have at most one) "
+ "for `%s' with description `%s'",
+ file_names[m->type], m->desc);
return -1;
}
}
@@ -2587,7 +2587,7 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
if (*p == NULL) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "cannot get string from `%s'",
- m->value.s);
+ m->value.s);
return -1;
}
if (m->type == FILE_REGEX) {
@@ -2646,8 +2646,8 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
if (ts == CAST(size_t, ~0)) {
file_magwarn(ms,
- "Expected numeric type got `%s'",
- type_tbl[m->type].name);
+ "Expected numeric type got `%s'",
+ type_tbl[m->type].name);
}
for (q = *p; isspace(CAST(unsigned char, *q)); q++)
continue;
@@ -2671,8 +2671,8 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
}
if (x) {
file_magwarn(ms, "Overflow for numeric"
- " type `%s' value %#" PRIx64,
- type_tbl[m->type].name, ull);
+ " type `%s' value %#" PRIx64,
+ type_tbl[m->type].name, ull);
}
}
if (errno == 0) {
@@ -2719,7 +2719,7 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn)
case '\t':
if (warn) {
file_magwarn(ms,
- "escaped tab found, use \\t instead");
+ "escaped tab found, use \\t instead");
warn = 0; /* already did */
}
/*FALLTHROUGH*/
@@ -2729,17 +2729,17 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn)
/* Allow escaping of
* ``relations'' */
if (strchr("<>&^=!", c) == NULL
- && (m->type != FILE_REGEX ||
- strchr("[]().*?^$|{}", c)
- == NULL)) {
+ && (m->type != FILE_REGEX ||
+ strchr("[]().*?^$|{}", c)
+ == NULL)) {
file_magwarn(ms, "no "
- "need to escape "
- "`%c'", c);
+ "need to escape "
+ "`%c'", c);
}
} else {
file_magwarn(ms,
- "unknown escape sequence: "
- "\\%03o", c);
+ "unknown escape sequence: "
+ "\\%03o", c);
}
}
/*FALLTHROUGH*/
@@ -3005,10 +3005,10 @@ apprentice_map(struct magic_set *ms, const char *fn)
/* Don't bother on windows with php_stream_open_wrapper,
return to give apprentice_load() a chance. */
if (php_stream_stat_path_ex((char *)fn, 0, &st, NULL) == SUCCESS) {
- if (st.sb.st_mode & S_IFDIR) {
- goto error;
- }
- }
+ if (st.sb.st_mode & S_IFDIR) {
+ goto error;
+ }
+ }
#endif
dbname = mkdbname(ms, fn, 0);
@@ -3029,7 +3029,7 @@ apprentice_map(struct magic_set *ms, const char *fn)
#endif
if (st.sb.st_size < 8 || st.sb.st_size > maxoff_t()) {
file_error(ms, 0, "file `%s' is too %s", dbname,
- st.sb.st_size < 8 ? "small" : "large");
+ st.sb.st_size < 8 ? "small" : "large");
goto error;
}
@@ -3061,8 +3061,8 @@ apprentice_map(struct magic_set *ms, const char *fn)
version = ptr[1];
if (version != VERSIONNO) {
file_error(ms, 0, "File %d.%d supports only version %d magic "
- "files. `%s' is version %d", FILE_VERSION_MAJOR, patchlevel,
- VERSIONNO, dbname, version);
+ "files. `%s' is version %d", FILE_VERSION_MAJOR, patchlevel,
+ VERSIONNO, dbname, version);
goto error;
}
@@ -3097,7 +3097,7 @@ apprentice_map(struct magic_set *ms, const char *fn)
}
if (NULL != fn && entries != nentries + 1) {
file_error(ms, 0, "Inconsistent entries in `%s' %u != %u",
- dbname, entries, nentries + 1);
+ dbname, entries, nentries + 1);
goto error;
}
if (needsbyteswap)
@@ -3144,15 +3144,15 @@ check_buffer(struct magic_set *ms, struct magic_map *map, const char *dbname)
version = ptr[1];
if (version != VERSIONNO) {
file_error(ms, 0, "File %s supports only version %d magic "
- "files. `%s' is version %d", FILE_VERSION_MAJOR,
- VERSIONNO, dbname, version);
+ "files. `%s' is version %d", FILE_VERSION_MAJOR,
+ VERSIONNO, dbname, version);
return -1;
}
entries = CAST(uint32_t, map->len / sizeof(struct magic));
if ((entries * sizeof(struct magic)) != map->len) {
file_error(ms, 0, "Size of `%s' %" SIZE_T_FORMAT "u is not "
- "a multiple of %" SIZE_T_FORMAT "u",
- dbname, map->len, sizeof(struct magic));
+ "a multiple of %" SIZE_T_FORMAT "u",
+ dbname, map->len, sizeof(struct magic));
return -1;
}
map->magic[0] = CAST(struct magic *, map->p) + 1;
@@ -3168,7 +3168,7 @@ check_buffer(struct magic_set *ms, struct magic_map *map, const char *dbname)
}
if (entries != nentries + 1) {
file_error(ms, 0, "Inconsistent entries in `%s' %u != %u",
- dbname, entries, nentries + 1);
+ dbname, entries, nentries + 1);
return -1;
}
if (needsbyteswap)
@@ -3455,8 +3455,8 @@ file_magicfind(struct magic_set *ms, const char *name, struct mlist *v)
if (strcmp(ma[i].value.s, name) == 0) {
v->magic = &ma[i];
for (j = i + 1; j < nma; j++)
- if (ma[j].cont_level == 0)
- break;
+ if (ma[j].cont_level == 0)
+ break;
v->nmagic = j - i;
return 0;
}
diff --git a/ext/fileinfo/libmagic/encoding.c b/ext/fileinfo/libmagic/encoding.c
index 8e005d2e577c..de14c57b61c9 100644
--- a/ext/fileinfo/libmagic/encoding.c
+++ b/ext/fileinfo/libmagic/encoding.c
@@ -46,7 +46,7 @@ FILE_RCSID("@(#)$File: encoding.c,v 1.20 2019/04/15 16:48:41 christos Exp $")
private int looks_ascii(const unsigned char *, size_t, unichar *, size_t *);
private int looks_utf8_with_BOM(const unsigned char *, size_t, unichar *,
- size_t *);
+ size_t *);
private int looks_utf7(const unsigned char *, size_t, unichar *, size_t *);
private int looks_ucs16(const unsigned char *, size_t, unichar *, size_t *);
private int looks_ucs32(const unsigned char *, size_t, unichar *, size_t *);
@@ -68,7 +68,7 @@ private void from_ebcdic(const unsigned char *, size_t, unsigned char *);
*/
protected int
file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
- size_t *ulen, const char **code, const char **code_mime, const char **type)
+ size_t *ulen, const char **code, const char **code_mime, const char **type)
{
const unsigned char *buf = CAST(const unsigned char *, b->fbuf);
size_t nbytes = b->flen;
@@ -98,7 +98,7 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
}
mlen = (nbytes + 1) * sizeof(nbuf[0]);
if ((nbuf = CAST(unsigned char *,
- ecalloc(CAST(size_t, 1), mlen))) == NULL) {
+ ecalloc(CAST(size_t, 1), mlen))) == NULL) {
file_oomem(ms, mlen);
goto done;
}
@@ -156,7 +156,7 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf,
*code_mime = "ebcdic";
} else if (looks_latin1(nbuf, nbytes, *ubuf, ulen)) {
DPRINTF(("ebcdic/international %" SIZE_T_FORMAT "u\n",
- *ulen));
+ *ulen));
*code = "International EBCDIC";
*code_mime = "ebcdic";
} else { /* Doesn't look like text at all */
@@ -255,7 +255,7 @@ private char text_chars[256] = {
private int
looks_ascii(const unsigned char *buf, size_t nbytes, unichar *ubuf,
- size_t *ulen)
+ size_t *ulen)
{
size_t i;
@@ -294,7 +294,7 @@ looks_latin1(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ule
private int
looks_extended(const unsigned char *buf, size_t nbytes, unichar *ubuf,
- size_t *ulen)
+ size_t *ulen)
{
size_t i;
@@ -396,7 +396,7 @@ file_looks_utf8(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *
*/
private int
looks_utf8_with_BOM(const unsigned char *buf, size_t nbytes, unichar *ubuf,
- size_t *ulen)
+ size_t *ulen)
{
if (nbytes > 3 && buf[0] == 0xef && buf[1] == 0xbb && buf[2] == 0xbf)
return file_looks_utf8(buf + 3, nbytes - 3, ubuf, ulen);
@@ -425,7 +425,7 @@ looks_utf7(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
private int
looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
- size_t *ulen)
+ size_t *ulen)
{
int bigend;
size_t i;
@@ -447,15 +447,15 @@ looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
if (bigend)
ubf[(*ulen)++] = bf[i + 1]
- | (CAST(unichar, bf[i]) << 8);
+ | (CAST(unichar, bf[i]) << 8);
else
ubf[(*ulen)++] = bf[i]
- | (CAST(unichar, bf[i + 1]) << 8);
+ | (CAST(unichar, bf[i + 1]) << 8);
if (ubf[*ulen - 1] == 0xfffe)
return 0;
if (ubf[*ulen - 1] < 128 &&
- text_chars[CAST(size_t, ubf[*ulen - 1])] != T)
+ text_chars[CAST(size_t, ubf[*ulen - 1])] != T)
return 0;
}
@@ -464,7 +464,7 @@ looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf,
private int
looks_ucs32(const unsigned char *bf, size_t nbytes, unichar *ubf,
- size_t *ulen)
+ size_t *ulen)
{
int bigend;
size_t i;
@@ -486,19 +486,19 @@ looks_ucs32(const unsigned char *bf, size_t nbytes, unichar *ubf,
if (bigend)
ubf[(*ulen)++] = CAST(unichar, bf[i + 3])
- | (CAST(unichar, bf[i + 2]) << 8)
- | (CAST(unichar, bf[i + 1]) << 16)
- | (CAST(unichar, bf[i]) << 24);
+ | (CAST(unichar, bf[i + 2]) << 8)
+ | (CAST(unichar, bf[i + 1]) << 16)
+ | (CAST(unichar, bf[i]) << 24);
else
ubf[(*ulen)++] = CAST(unichar, bf[i + 0])
- | (CAST(unichar, bf[i + 1]) << 8)
- | (CAST(unichar, bf[i + 2]) << 16)
- | (CAST(unichar, bf[i + 3]) << 24);
+ | (CAST(unichar, bf[i + 1]) << 8)
+ | (CAST(unichar, bf[i + 2]) << 16)
+ | (CAST(unichar, bf[i + 3]) << 24);
if (ubf[*ulen - 1] == 0xfffe)
return 0;
if (ubf[*ulen - 1] < 128 &&
- text_chars[CAST(size_t, ubf[*ulen - 1])] != T)
+ text_chars[CAST(size_t, ubf[*ulen - 1])] != T)
return 0;
}
diff --git a/ext/fileinfo/libmagic/file.h b/ext/fileinfo/libmagic/file.h
index 8f1169a90d27..d0cd6a6134f2 100644
--- a/ext/fileinfo/libmagic/file.h
+++ b/ext/fileinfo/libmagic/file.h
@@ -37,9 +37,9 @@
#ifdef PHP_WIN32
#ifdef _WIN64
- #define SIZE_T_FORMAT "I64"
+ #define SIZE_T_FORMAT "I64"
#else
- #define SIZE_T_FORMAT ""
+ #define SIZE_T_FORMAT ""
#endif
#define INT64_T_FORMAT "I64"
#define INTMAX_T_FORMAT "I64"
@@ -346,7 +346,7 @@ struct magic {
#define PSTRING_4_LE BIT(11)
#define REGEX_LINE_COUNT BIT(11)
#define PSTRING_LEN \
- (PSTRING_1_BE|PSTRING_2_LE|PSTRING_2_BE|PSTRING_4_LE|PSTRING_4_BE)
+ (PSTRING_1_BE|PSTRING_2_LE|PSTRING_2_BE|PSTRING_4_LE|PSTRING_4_BE)
#define PSTRING_LENGTH_INCLUDES_ITSELF BIT(12)
#define STRING_TRIM BIT(13)
#define CHAR_COMPACT_WHITESPACE 'W'
@@ -438,7 +438,7 @@ struct magic_set {
uint16_t elf_notes_max;
uint16_t regex_max;
size_t bytes_max; /* number of bytes to read from file */
- size_t encoding_max; /* bytes to look for encoding */
+ size_t encoding_max; /* bytes to look for encoding */
#define FILE_INDIR_MAX 50
#define FILE_NAME_MAX 30
#define FILE_ELF_SHNUM_MAX 32768
@@ -457,7 +457,7 @@ protected const char *file_fmttime(uint64_t, int, char *);
protected struct magic_set *file_ms_alloc(int);
protected void file_ms_free(struct magic_set *);
protected int file_buffer(struct magic_set *, php_stream *, zend_stat_t *, const char *, const void *,
- size_t);
+ size_t);
protected int file_fsmagic(struct magic_set *, const char *, zend_stat_t *);
protected int file_pipe2file(struct magic_set *, int, const void *, size_t);
protected int file_separator(struct magic_set *);
@@ -469,24 +469,24 @@ protected int file_tryelf(struct magic_set *, const struct buffer *);
protected int file_trycdf(struct magic_set *, const struct buffer *);
#ifdef PHP_FILEINFO_UNCOMPRESS
protected int file_zmagic(struct magic_set *, const struct buffer *,
- const char *);
+ const char *);
#endif
protected int file_ascmagic(struct magic_set *, const struct buffer *,
- int);
+ int);
protected int file_ascmagic_with_encoding(struct magic_set *,
- const struct buffer *, unichar *, size_t, const char *, const char *, int);
+ const struct buffer *, unichar *, size_t, const char *, const char *, int);
protected int file_encoding(struct magic_set *, const struct buffer *,
- unichar **, size_t *, const char **, const char **, const char **);
+ unichar **, size_t *, const char **, const char **, const char **);
protected int file_is_json(struct magic_set *, const struct buffer *);
protected int file_is_tar(struct magic_set *, const struct buffer *);
protected int file_softmagic(struct magic_set *, const struct buffer *,
- uint16_t *, uint16_t *, int, int);
+ uint16_t *, uint16_t *, int, int);
protected int file_apprentice(struct magic_set *, const char *, int);
protected int buffer_apprentice(struct magic_set *, struct magic **,
- size_t *, size_t);
+ size_t *, size_t);
protected int file_magicfind(struct magic_set *, const char *, struct mlist *);
protected uint64_t file_signextend(struct magic_set *, struct magic *,
- uint64_t);
+ uint64_t);
protected void file_badread(struct magic_set *);
protected void file_badseek(struct magic_set *);
protected void file_oomem(struct magic_set *, size_t);
@@ -499,17 +499,17 @@ protected const char *file_getbuffer(struct magic_set *);
protected ssize_t sread(int, void *, size_t, int);
protected int file_check_mem(struct magic_set *, unsigned int);
protected int file_looks_utf8(const unsigned char *, size_t, unichar *,
- size_t *);
+ size_t *);
protected size_t file_pstring_length_size(const struct magic *);
protected size_t file_pstring_get_length(const struct magic *, const char *);
protected char * file_printable(char *, size_t, const char *, size_t);
#ifdef __EMX__
protected int file_os2_apptype(struct magic_set *, const char *, const void *,
- size_t);
+ size_t);
#endif /* __EMX__ */
protected void buffer_init(struct buffer *, int, const zend_stat_t *,
- const void *, size_t);
+ const void *, size_t);
protected void buffer_fini(struct buffer *);
protected int buffer_fill(const struct buffer *);
diff --git a/ext/fileinfo/libmagic/magic.c b/ext/fileinfo/libmagic/magic.c
index 3e6408f614ea..9df3aca3bdba 100644
--- a/ext/fileinfo/libmagic/magic.c
+++ b/ext/fileinfo/libmagic/magic.c
@@ -157,7 +157,7 @@ magic_list(struct magic_set *ms, const char *magicfile)
#if 0
private void
close_and_restore(const struct magic_set *ms, const char *name, int fd,
- const zend_stat_t *sb)
+ const zend_stat_t *sb)
{
if (fd == STDIN_FILENO || name == NULL)
return;
@@ -384,9 +384,9 @@ magic_setparam(struct magic_set *ms, int param, const void *val)
case MAGIC_PARAM_BYTES_MAX:
ms->bytes_max = *CAST(const size_t *, val);
return 0;
- case MAGIC_PARAM_ENCODING_MAX:
- ms->encoding_max = *CAST(const size_t *, val);
- return 0;
+ case MAGIC_PARAM_ENCODING_MAX:
+ ms->encoding_max = *CAST(const size_t *, val);
+ return 0;
default:
errno = EINVAL;
return -1;
@@ -420,9 +420,9 @@ magic_getparam(struct magic_set *ms, int param, void *val)
case MAGIC_PARAM_BYTES_MAX:
*CAST(size_t *, val) = ms->bytes_max;
return 0;
- case MAGIC_PARAM_ENCODING_MAX:
- *(size_t *)val = ms->encoding_max;
- return 0;
+ case MAGIC_PARAM_ENCODING_MAX:
+ *(size_t *)val = ms->encoding_max;
+ return 0;
default:
errno = EINVAL;
return -1;
From eb738e271c97b73c67e1606f7b580f20f7c5cd8d Mon Sep 17 00:00:00 2001
From: Andrei Latchescu <andrei@davisinfo.ro>
Date: Wed, 4 Aug 2021 09:49:20 +0300
Subject: [PATCH 3/3] Fix #78987 - Memory problems running finfo::buffer -
fixed failing test
---
ext/fileinfo/tests/finfo_file_basic.phpt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ext/fileinfo/tests/finfo_file_basic.phpt b/ext/fileinfo/tests/finfo_file_basic.phpt
index e65d70ec89a7..8d61dc4652a1 100644
--- a/ext/fileinfo/tests/finfo_file_basic.phpt
+++ b/ext/fileinfo/tests/finfo_file_basic.phpt
@@ -26,8 +26,8 @@ var_dump( finfo_file( $finfo, $magicFile.chr(0).$magicFile) );
--EXPECTF--
*** Testing finfo_file() : basic functionality ***
string(28) "text/x-php; charset=us-ascii"
-string(%d) "PHP script, ASCII text%A"
-string(32) "text/plain; charset=unknown-8bit"
+string(22) "PHP script, ASCII text"
+string(28) "text/plain; charset=us-ascii"
Warning: finfo_file(): Invalid path in %s%efinfo_file_basic.php on line %d
bool(false)