summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2015-03-06 15:16:08 +0100
committerAnatol Belski <ab@php.net>2015-03-08 19:47:59 +0100
commit3e8a5485e200ac8da8060d879aa96bb3d18a736a (patch)
tree1464b44d71dec40c9bcf7b501dbb81209e06d3aa
parenteeb74b0ab81f580620954b1d34a350aa105d1dd8 (diff)
downloadphp-git-3e8a5485e200ac8da8060d879aa96bb3d18a736a.tar.gz
catching up
-rw-r--r--ext/fileinfo/libmagic/apprentice.c12
-rw-r--r--ext/fileinfo/libmagic/softmagic.c12
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;