diff options
author | George Peter Banyard <girgias@php.net> | 2020-08-26 12:57:24 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2020-08-26 12:59:43 +0200 |
commit | 1b2ec73c1d9175769c3ad4dd40825546851287bc (patch) | |
tree | 6990f3beaecc66a2f9f8196cb092691618ea8aa7 /ext/fileinfo/libmagic | |
parent | ebbe333ede58aef60740bd297327188513814f1b (diff) | |
download | php-git-1b2ec73c1d9175769c3ad4dd40825546851287bc.tar.gz |
Drop various unused macros/APIs
Also convert_libmagic_pattern() to return a zend_string*
Closes GH-6029
Diffstat (limited to 'ext/fileinfo/libmagic')
-rw-r--r-- | ext/fileinfo/libmagic/apprentice.c | 10 | ||||
-rw-r--r-- | ext/fileinfo/libmagic/file.h | 3 | ||||
-rw-r--r-- | ext/fileinfo/libmagic/funcs.c | 10 | ||||
-rw-r--r-- | ext/fileinfo/libmagic/softmagic.c | 19 |
4 files changed, 20 insertions, 22 deletions
diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c index 03d5d89b06..f6ff1cf26e 100644 --- a/ext/fileinfo/libmagic/apprentice.c +++ b/ext/fileinfo/libmagic/apprentice.c @@ -2590,17 +2590,17 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action) return -1; } if (m->type == FILE_REGEX) { - zval pattern; + zend_string *pattern; int options = 0; pcre_cache_entry *pce; - convert_libmagic_pattern(&pattern, m->value.s, strlen(m->value.s), options); + pattern = convert_libmagic_pattern(m->value.s, strlen(m->value.s), options); - if ((pce = pcre_get_compiled_regex_cache(Z_STR(pattern))) == NULL) { - zval_dtor(&pattern); + if ((pce = pcre_get_compiled_regex_cache(pattern)) == NULL) { + zend_string_release(pattern); return -1; } - zval_dtor(&pattern); + zend_string_release(pattern); return 0; } diff --git a/ext/fileinfo/libmagic/file.h b/ext/fileinfo/libmagic/file.h index b588efcadb..c74c159569 100644 --- a/ext/fileinfo/libmagic/file.h +++ b/ext/fileinfo/libmagic/file.h @@ -503,8 +503,7 @@ protected void buffer_init(struct buffer *, int, const zend_stat_t *, protected void buffer_fini(struct buffer *); protected int buffer_fill(const struct buffer *); -public void -convert_libmagic_pattern(zval *pattern, char *val, size_t len, uint32_t options); +public zend_string* convert_libmagic_pattern(char *val, size_t len, uint32_t options); typedef struct { char *buf; diff --git a/ext/fileinfo/libmagic/funcs.c b/ext/fileinfo/libmagic/funcs.c index 6561f7458b..a21e85ffc0 100644 --- a/ext/fileinfo/libmagic/funcs.c +++ b/ext/fileinfo/libmagic/funcs.c @@ -516,7 +516,7 @@ file_printedlen(const struct magic_set *ms) protected int file_replace(struct magic_set *ms, const char *pat, const char *rep) { - zval patt; + zend_string *pattern; uint32_t opts = 0; pcre_cache_entry *pce; zend_string *res; @@ -524,13 +524,13 @@ file_replace(struct magic_set *ms, const char *pat, const char *rep) size_t rep_cnt = 0; opts |= PCRE2_MULTILINE; - convert_libmagic_pattern(&patt, (char*)pat, strlen(pat), opts); - if ((pce = pcre_get_compiled_regex_cache_ex(Z_STR(patt), 0)) == NULL) { - zval_ptr_dtor(&patt); + pattern = convert_libmagic_pattern((char*)pat, strlen(pat), opts); + if ((pce = pcre_get_compiled_regex_cache_ex(pattern, 0)) == NULL) { + zend_string_release(pattern); rep_cnt = -1; goto out; } - zval_ptr_dtor(&patt); + zend_string_release(pattern); repl = zend_string_init(rep, strlen(rep), 0); res = php_pcre_replace_impl(pce, NULL, ms->o.buf, strlen(ms->o.buf), repl, -1, &rep_cnt); diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index d71801cea5..fa272f625d 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -1904,8 +1904,7 @@ file_strncmp16(const char *a, const char *b, size_t len, uint32_t flags) return file_strncmp(a, b, len, flags); } -public void -convert_libmagic_pattern(zval *pattern, char *val, size_t len, uint32_t options) +public zend_string* convert_libmagic_pattern(char *val, size_t len, uint32_t options) { int i, j; zend_string *t; @@ -1956,7 +1955,7 @@ convert_libmagic_pattern(zval *pattern, char *val, size_t len, uint32_t options) ZSTR_VAL(t)[j]='\0'; ZSTR_LEN(t) = j; - ZVAL_NEW_STR(pattern, t); + return t; } private int @@ -2137,7 +2136,7 @@ magiccheck(struct magic_set *ms, struct magic *m) break; } case FILE_REGEX: { - zval pattern; + zend_string *pattern; uint32_t options = 0; pcre_cache_entry *pce; @@ -2147,11 +2146,11 @@ magiccheck(struct magic_set *ms, struct magic *m) options |= PCRE2_CASELESS; } - convert_libmagic_pattern(&pattern, (char *)m->value.s, m->vallen, options); + pattern = convert_libmagic_pattern((char *)m->value.s, m->vallen, options); l = v = 0; - if ((pce = pcre_get_compiled_regex_cache(Z_STR(pattern))) == NULL) { - zval_ptr_dtor(&pattern); + if ((pce = pcre_get_compiled_regex_cache(pattern)) == NULL) { + zend_string_release(pattern); return -1; } else { /* pce now contains the compiled regex */ @@ -2172,7 +2171,7 @@ magiccheck(struct magic_set *ms, struct magic *m) if (Z_LVAL(retval) < 0) { zval_ptr_dtor(&subpats); - zval_ptr_dtor(&pattern); + zend_string_release(pattern); return -1; } else if ((Z_LVAL(retval) > 0) && (Z_TYPE(subpats) == IS_ARRAY)) { /* Need to fetch global match which equals pmatch[0] */ @@ -2199,14 +2198,14 @@ magiccheck(struct magic_set *ms, struct magic *m) } else { error_out: zval_ptr_dtor(&subpats); - zval_ptr_dtor(&pattern); + zend_string_release(pattern); return -1; } } else { v = 1; } zval_ptr_dtor(&subpats); - zval_ptr_dtor(&pattern); + zend_string_release(pattern); } break; } |