diff options
| author | Anatol Belski <ab@php.net> | 2015-03-06 15:16:08 +0100 |
|---|---|---|
| committer | Anatol Belski <ab@php.net> | 2015-03-08 19:47:59 +0100 |
| commit | 3e8a5485e200ac8da8060d879aa96bb3d18a736a (patch) | |
| tree | 1464b44d71dec40c9bcf7b501dbb81209e06d3aa | |
| parent | eeb74b0ab81f580620954b1d34a350aa105d1dd8 (diff) | |
| download | php-git-3e8a5485e200ac8da8060d879aa96bb3d18a736a.tar.gz | |
catching up
| -rw-r--r-- | ext/fileinfo/libmagic/apprentice.c | 12 | ||||
| -rw-r--r-- | 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 <unistd.h> #endif -#ifdef HAVE_STDDEF_H -#include <stddef.h> -#endif #include <string.h> #include <assert.h> #include <ctype.h> @@ -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; |
