From 3e8a5485e200ac8da8060d879aa96bb3d18a736a Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Fri, 6 Mar 2015 15:16:08 +0100 Subject: [PATCH] catching up --- ext/fileinfo/libmagic/apprentice.c | 12 ++---------- ext/fileinfo/libmagic/softmagic.c | 12 +++++++----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c index 382dd8d1d0..ba9a1a79d7 100644 --- a/ext/fileinfo/libmagic/apprentice.c +++ b/ext/fileinfo/libmagic/apprentice.c @@ -58,9 +58,6 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.230 2015/01/02 21:29:39 christos Exp $") #else #include #endif -#ifdef HAVE_STDDEF_H -#include -#endif #include #include #include @@ -441,7 +438,8 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) for (i = 0; i < MAGIC_SETS; i++) { if (add_mlist(ms->mlist[i], map, i) == -1) { file_oomem(ms, sizeof(*ml)); - goto fail; + apprentice_unmap(map); + return -1; } } @@ -455,12 +453,6 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) } } return 0; -fail: - for (i = 0; i < MAGIC_SETS; i++) { - mlist_free(ms->mlist[i]); - ms->mlist[i] = NULL; - } - return -1; } protected void diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index 3ff6f57faf..9ac177c0e9 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -1089,8 +1089,13 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, return 0; } - linecnt = m->str_range; - bytecnt = linecnt * 80; + if (m->str_flags & REGEX_LINE_COUNT) { + linecnt = m->str_range; + bytecnt = linecnt * 80; + } else { + linecnt = 0; + bytecnt = m->str_range; + } /* XXX bytecnt_max is to be kept for PHP, see cve-2014-3538. PCRE might stuck if the input buffer is too big. To ensure @@ -1901,7 +1906,6 @@ magiccheck(struct magic_set *ms, struct magic *m) break; default: - matched = 0; file_magerror(ms, "cannot happen with float: invalid relation `%c'", m->reln); return -1; @@ -1935,7 +1939,6 @@ magiccheck(struct magic_set *ms, struct magic *m) break; default: - matched = 0; file_magerror(ms, "cannot happen with double: invalid relation `%c'", m->reln); return -1; } @@ -2184,7 +2187,6 @@ magiccheck(struct magic_set *ms, struct magic *m) break; default: - matched = 0; file_magerror(ms, "cannot happen: invalid relation `%c'", m->reln); return -1; -- 2.50.1