]> granicus.if.org Git - php/commitdiff
catching up
authorAnatol Belski <ab@php.net>
Fri, 6 Mar 2015 14:16:08 +0000 (15:16 +0100)
committerAnatol Belski <ab@php.net>
Sun, 8 Mar 2015 18:47:59 +0000 (19:47 +0100)
ext/fileinfo/libmagic/apprentice.c
ext/fileinfo/libmagic/softmagic.c

index 382dd8d1d05e0661259205fcb71603fb183a72be..ba9a1a79d74d4ca94dc46269c88cd9da442c82a7 100644 (file)
@@ -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
index 3ff6f57faf08c34ec2509583694d29611b5bb2a0..9ac177c0e93d33ba8e4a5ddb0dada83062e0731c 100644 (file)
@@ -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;