summaryrefslogtreecommitdiff
path: root/ext/fileinfo/libmagic
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2020-08-26 12:57:24 +0200
committerGeorge Peter Banyard <girgias@php.net>2020-08-26 12:59:43 +0200
commit1b2ec73c1d9175769c3ad4dd40825546851287bc (patch)
tree6990f3beaecc66a2f9f8196cb092691618ea8aa7 /ext/fileinfo/libmagic
parentebbe333ede58aef60740bd297327188513814f1b (diff)
downloadphp-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.c10
-rw-r--r--ext/fileinfo/libmagic/file.h3
-rw-r--r--ext/fileinfo/libmagic/funcs.c10
-rw-r--r--ext/fileinfo/libmagic/softmagic.c19
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;
}