Commit 4195fc4ea06 for php.net
commit 4195fc4ea066c6020b5cb8b50e8ad5b531bc24fd
Author: Gina Peter Banyard <girgias@php.net>
Date: Tue Apr 21 22:33:22 2026 +0100
ext/phar: no longer assign to variables in if conditions
To increase legibility
diff --git a/ext/phar/dirstream.c b/ext/phar/dirstream.c
index 64cace88992..097272a9784 100644
--- a/ext/phar/dirstream.c
+++ b/ext/phar/dirstream.c
@@ -247,11 +247,11 @@ static php_stream *phar_make_dirstream(const char *dir, size_t dirlen, const Has
*/
php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC) /* {{{ */
{
- php_url *resource = NULL;
char *error;
phar_archive_data *phar;
- if ((resource = phar_parse_url(wrapper, path, mode, options)) == NULL) {
+ php_url *resource = phar_parse_url(wrapper, path, mode, options);
+ if (!resource) {
php_stream_wrapper_log_error(wrapper, options, "phar url \"%s\" is unknown", path);
return NULL;
}
@@ -343,7 +343,7 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path,
*/
int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mode, int options, php_stream_context *context) /* {{{ */
{
- phar_entry_info entry, *e;
+ phar_entry_info entry;
phar_archive_data *phar = NULL;
char *error;
php_url *resource = NULL;
@@ -390,7 +390,8 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo
return 0;
}
- if ((e = phar_get_entry_info_dir(phar, ZSTR_VAL(resource->path) + 1, ZSTR_LEN(resource->path) - 1, 2, &error, true))) {
+ phar_entry_info *e = phar_get_entry_info_dir(phar, ZSTR_VAL(resource->path) + 1, ZSTR_LEN(resource->path) - 1, 2, &error, true);
+ if (e) {
/* directory exists, or is a subdirectory of an existing file */
if (e->is_temp_dir) {
zend_string_efree(e->filename);
@@ -444,7 +445,8 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo
entry.flags = PHAR_ENT_PERM_DEF_DIR;
entry.old_flags = PHAR_ENT_PERM_DEF_DIR;
- if (NULL == zend_hash_add_mem(&phar->manifest, entry.filename, &entry, sizeof(phar_entry_info))) {
+ void *had_been_added = zend_hash_add_mem(&phar->manifest, entry.filename, &entry, sizeof(phar_entry_info));
+ if (!had_been_added) {
php_stream_wrapper_log_error(wrapper, options, "phar error: cannot create directory \"%s\" in phar \"%s\", adding to manifest failed", ZSTR_VAL(entry.filename), phar->fname);
zend_string_efree(entry.filename);
return 0;
@@ -469,10 +471,8 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo
*/
int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context) /* {{{ */
{
- phar_entry_info *entry;
phar_archive_data *phar = NULL;
char *error;
- php_url *resource = NULL;
/* pre-readonly check, we need to know if this is a data phar */
zend_string *arch = phar_split_fname(url, strlen(url), NULL, 2, 2);
@@ -492,7 +492,8 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options
return 0;
}
- if ((resource = phar_parse_url(wrapper, url, "w", options)) == NULL) {
+ php_url *resource = phar_parse_url(wrapper, url, "w", options);
+ if (!resource) {
return 0;
}
@@ -518,7 +519,8 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options
size_t path_len = ZSTR_LEN(resource->path) - 1;
- if (!(entry = phar_get_entry_info_dir(phar, ZSTR_VAL(resource->path) + 1, path_len, 2, &error, true))) {
+ phar_entry_info *entry = phar_get_entry_info_dir(phar, ZSTR_VAL(resource->path) + 1, path_len, 2, &error, true);
+ if (!entry) {
if (error) {
php_stream_wrapper_log_error(wrapper, options, "phar error: cannot remove directory \"%s\" in phar \"%s\", %s", ZSTR_VAL(resource->path)+1, ZSTR_VAL(resource->host), error);
efree(error);
diff --git a/ext/phar/func_interceptors.c b/ext/phar/func_interceptors.c
index 129714e2f87..a3a0590f94c 100644
--- a/ext/phar/func_interceptors.c
+++ b/ext/phar/func_interceptors.c
@@ -106,7 +106,8 @@ static zend_string* phar_get_name_for_relative_paths(zend_string *filename, bool
zend_string *name = NULL;
if (using_include_path) {
- if (!(name = phar_find_in_include_path(filename, NULL))) {
+ name = phar_find_in_include_path(filename, NULL);
+ if (!name) {
/* this file is not in the phar, use the original path */
zend_string_release_ex(arch, false);
return NULL;
@@ -841,7 +842,8 @@ void phar_release_functions(void)
/* {{{ void phar_intercept_functions_init(void) */
#define PHAR_INTERCEPT(func) \
PHAR_G(orig_##func) = NULL; \
- if (NULL != (orig = zend_hash_str_find_ptr(CG(function_table), #func, sizeof(#func)-1))) { \
+ orig = zend_hash_str_find_ptr(CG(function_table), #func, sizeof(#func)-1); \
+ if (orig) { \
PHAR_G(orig_##func) = orig->internal_function.handler; \
orig->internal_function.handler = PHP_FN(phar_##func); \
}
diff --git a/ext/phar/phar.c b/ext/phar/phar.c
index 639ada54e94..b0d56c8067e 100644
--- a/ext/phar/phar.c
+++ b/ext/phar/phar.c
@@ -1263,7 +1263,8 @@ static zend_result phar_parse_pharfile(php_stream *fp, char *fname, size_t fname
MAPPHAR_FAIL("Cannot open archive \"%s\", invalid alias");
}
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
+ fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
+ if (fd_ptr) {
if (SUCCESS != phar_free_alias(fd_ptr)) {
signature = NULL;
fp = NULL;
@@ -1460,10 +1461,9 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 7, 8) zend_result phar_create_or_parse_filename(c
/* assume tar format, PharData can specify other */
mydata->is_tar = 1;
} else {
- phar_archive_data *fd_ptr;
-
- if (alias && NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
- if (SUCCESS != phar_free_alias(fd_ptr)) {
+ if (alias) {
+ const phar_archive_data *fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
+ if (fd_ptr && SUCCESS != phar_free_alias(fd_ptr)) {
spprintf(error, 4096, "phar error: phar \"%s\" cannot set alias \"%s\", already in use by another phar archive", mydata->fname, alias);
zend_hash_str_del(&(PHAR_G(phar_fname_map)), mydata->fname, fname_len);
@@ -1669,14 +1669,14 @@ static zend_result phar_open_from_fp(php_stream* fp, char *fname, size_t fname_l
continue;
} else if (!memcmp(pos, bz_magic, 3)) {
php_stream_filter *filter;
- php_stream *temp;
if (!PHAR_G(has_bz2)) {
MAPPHAR_ALLOC_FAIL("unable to decompress bzipped phar archive \"%s\" to temporary file, enable bz2 extension in php.ini")
}
/* entire file is bzip-compressed, uncompress to temporary file */
- if (!(temp = php_stream_fopen_tmpfile())) {
+ php_stream *temp = php_stream_fopen_tmpfile();
+ if (!temp) {
MAPPHAR_ALLOC_FAIL("unable to create temporary file for decompression of bzipped phar archive \"%s\"")
}
@@ -1750,10 +1750,10 @@ static zend_result phar_open_from_fp(php_stream* fp, char *fname, size_t fname_l
static zend_result phar_analyze_path(const char *fname, const char *ext, size_t ext_len, int for_create) /* {{{ */
{
php_stream_statbuf ssb;
- char *realpath;
char *filename = estrndup(fname, (ext - fname) + ext_len);
- if ((realpath = expand_filepath(filename, NULL))) {
+ char *realpath = expand_filepath(filename, NULL);
+ if (realpath) {
#ifdef PHP_WIN32
phar_unixify_path_separators(realpath, strlen(realpath));
#endif
@@ -1800,7 +1800,8 @@ static zend_result phar_analyze_path(const char *fname, const char *ext, size_t
if (SUCCESS != php_stream_stat_path((char *) filename, &ssb)) {
if (!slash) {
- if (!(realpath = expand_filepath(filename, NULL))) {
+ realpath = expand_filepath(filename, NULL);
+ if (!realpath) {
efree(filename);
return FAILURE;
}
@@ -1943,7 +1944,8 @@ zend_result phar_detect_phar_fname_ext(const char *filename, size_t filename_len
phar_archive_data *pphar;
if (is_complete) {
- if (NULL != (pphar = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), (char *) filename, filename_len))) {
+ pphar = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), filename, filename_len);
+ if (pphar) {
*ext_str = filename + (filename_len - pphar->ext_len);
woohoo:
*ext_len = pphar->ext_len;
@@ -1963,7 +1965,8 @@ zend_result phar_detect_phar_fname_ext(const char *filename, size_t filename_len
return FAILURE;
}
- if (PHAR_G(manifest_cached) && NULL != (pphar = zend_hash_str_find_ptr(&cached_phars, (char *) filename, filename_len))) {
+ pphar = PHAR_G(manifest_cached) ? zend_hash_str_find_ptr(&cached_phars, filename, filename_len) : NULL;
+ if (pphar) {
*ext_str = filename + (filename_len - pphar->ext_len);
goto woohoo;
}
diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c
index 54fb674d0e6..811a27e7931 100644
--- a/ext/phar/phar_object.c
+++ b/ext/phar/phar_object.c
@@ -44,7 +44,6 @@ static zend_class_entry *phar_ce_entry;
static int phar_file_type(const HashTable *mimes, const char *file, char **mime_type) /* {{{ */
{
- phar_mime_type *mime;
const char *ext = strrchr(file, '.');
if (!ext) {
*mime_type = "text/plain";
@@ -52,7 +51,9 @@ static int phar_file_type(const HashTable *mimes, const char *file, char **mime_
return PHAR_MIME_OTHER;
}
++ext;
- if (NULL == (mime = zend_hash_str_find_ptr(mimes, ext, strlen(ext)))) {
+
+ phar_mime_type *mime = zend_hash_str_find_ptr(mimes, ext, strlen(ext));
+ if (!mime) {
*mime_type = "application/octet-stream";
return PHAR_MIME_OTHER;
}
@@ -64,7 +65,6 @@ static int phar_file_type(const HashTable *mimes, const char *file, char **mime_
static void phar_mung_server_vars(char *fname, char *entry, size_t entry_len, const char *basename, size_t request_uri_len) /* {{{ */
{
HashTable *_SERVER;
- zval *stuff;
char *path_info;
size_t basename_len = strlen(basename);
size_t code;
@@ -78,23 +78,25 @@ static void phar_mung_server_vars(char *fname, char *entry, size_t entry_len, co
_SERVER = Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]);
/* PATH_INFO and PATH_TRANSLATED should always be munged */
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "PATH_INFO", sizeof("PATH_INFO")-1))) {
+ zval *stuff = zend_hash_str_find(_SERVER, ZEND_STRL("PATH_INFO"));
+ if (stuff) {
path_info = Z_STRVAL_P(stuff);
code = Z_STRLEN_P(stuff);
if (code > (size_t)entry_len && !memcmp(path_info, entry, entry_len)) {
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_STRINGL(stuff, path_info + entry_len, request_uri_len);
- zend_hash_str_update(_SERVER, "PHAR_PATH_INFO", sizeof("PHAR_PATH_INFO")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_PATH_INFO"), &temp);
}
}
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "PATH_TRANSLATED", sizeof("PATH_TRANSLATED")-1))) {
+ stuff = zend_hash_str_find(_SERVER, ZEND_STRL("PATH_TRANSLATED"));
+ if (stuff) {
zend_string *str = strpprintf(4096, "phar://%s%s", fname, entry);
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_NEW_STR(stuff, str);
- zend_hash_str_update(_SERVER, "PHAR_PATH_TRANSLATED", sizeof("PHAR_PATH_TRANSLATED")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_PATH_TRANSLATED"), &temp);
}
if (!PHAR_G(phar_SERVER_mung_list)) {
@@ -102,46 +104,50 @@ static void phar_mung_server_vars(char *fname, char *entry, size_t entry_len, co
}
if (PHAR_G(phar_SERVER_mung_list) & PHAR_MUNG_REQUEST_URI) {
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "REQUEST_URI", sizeof("REQUEST_URI")-1))) {
+ stuff = zend_hash_str_find(_SERVER, ZEND_STRL("REQUEST_URI"));
+ if (stuff) {
path_info = Z_STRVAL_P(stuff);
code = Z_STRLEN_P(stuff);
if (code > basename_len && !memcmp(path_info, basename, basename_len)) {
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_STRINGL(stuff, path_info + basename_len, code - basename_len);
- zend_hash_str_update(_SERVER, "PHAR_REQUEST_URI", sizeof("PHAR_REQUEST_URI")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_REQUEST_URI"), &temp);
}
}
}
if (PHAR_G(phar_SERVER_mung_list) & PHAR_MUNG_PHP_SELF) {
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "PHP_SELF", sizeof("PHP_SELF")-1))) {
+ stuff = zend_hash_str_find(_SERVER, ZEND_STRL("PHP_SELF"));
+ if (stuff) {
path_info = Z_STRVAL_P(stuff);
code = Z_STRLEN_P(stuff);
if (code > basename_len && !memcmp(path_info, basename, basename_len)) {
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_STRINGL(stuff, path_info + basename_len, code - basename_len);
- zend_hash_str_update(_SERVER, "PHAR_PHP_SELF", sizeof("PHAR_PHP_SELF")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_PHP_SELF"), &temp);
}
}
}
if (PHAR_G(phar_SERVER_mung_list) & PHAR_MUNG_SCRIPT_NAME) {
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "SCRIPT_NAME", sizeof("SCRIPT_NAME")-1))) {
+ stuff = zend_hash_str_find(_SERVER, ZEND_STRL("SCRIPT_NAME"));
+ if (stuff) {
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_STRINGL(stuff, entry, entry_len);
- zend_hash_str_update(_SERVER, "PHAR_SCRIPT_NAME", sizeof("PHAR_SCRIPT_NAME")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_SCRIPT_NAME"), &temp);
}
}
if (PHAR_G(phar_SERVER_mung_list) & PHAR_MUNG_SCRIPT_FILENAME) {
- if (NULL != (stuff = zend_hash_str_find(_SERVER, "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1))) {
+ stuff = zend_hash_str_find(_SERVER, ZEND_STRL("SCRIPT_FILENAME"));
+ if (stuff) {
zend_string *str = strpprintf(4096, "phar://%s%s", fname, entry);
ZVAL_STR(&temp, Z_STR_P(stuff));
ZVAL_NEW_STR(stuff, str);
- zend_hash_str_update(_SERVER, "PHAR_SCRIPT_FILENAME", sizeof("PHAR_SCRIPT_FILENAME")-1, &temp);
+ zend_hash_str_update(_SERVER, ZEND_STRL("PHAR_SCRIPT_FILENAME"), &temp);
}
}
}
@@ -478,7 +484,8 @@ PHP_METHOD(Phar, mount)
goto finish;
}
carry_on2:
- if (NULL == (pphar = zend_hash_find_ptr(&(PHAR_G(phar_fname_map)), arch))) {
+ pphar = zend_hash_find_ptr(&(PHAR_G(phar_fname_map)), arch);
+ if (!pphar) {
if (PHAR_G(manifest_cached) && NULL != (pphar = zend_hash_find_ptr(&cached_phars, arch))) {
if (SUCCESS == phar_copy_on_write(&pphar)) {
goto carry_on;
@@ -641,7 +648,9 @@ PHP_METHOD(Phar, webPhar)
if (!testit) {
goto finish;
}
- if (!(pt = strstr(testit, basename))) {
+
+ pt = strstr(testit, basename);
+ if (!pt) {
efree(testit);
goto finish;
}
@@ -667,7 +676,8 @@ PHP_METHOD(Phar, webPhar)
} else {
path_info = SG(request_info).request_uri;
- if (!(pt = strstr(path_info, basename))) {
+ pt = strstr(path_info, basename);
+ if (!pt) {
/* this can happen with rewrite rules - and we have no idea what to do then, so return */
goto finish;
}
@@ -1625,7 +1635,8 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
return ZEND_HASH_APPLY_KEEP;
}
- if (!(data = phar_build_entry_data(phar_obj->archive->fname, phar_obj->archive->fname_len, str_key, str_key_len, &error, value))) {
+ data = phar_build_entry_data(phar_obj->archive->fname, phar_obj->archive->fname_len, str_key, str_key_len, &error, value);
+ if (!data) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Entry %s cannot be created: %s", str_key, error);
efree(error);
@@ -1936,7 +1947,6 @@ static zend_result phar_copy_file_contents(phar_entry_info *entry, php_stream *f
static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /* {{{ */
{
- const char *oldname = NULL;
phar_archive_data *phar = *sphar;
char *oldpath = NULL;
char *basename = NULL, *basepath = NULL;
@@ -1946,7 +1956,7 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /*
char *error = NULL;
const char *pcr_error;
size_t ext_len = ext ? strlen(ext) : 0;
- size_t new_len, oldname_len, phar_ext_len;
+ size_t new_len, phar_ext_len;
phar_archive_data *pphar = NULL;
php_stream_statbuf ssb;
@@ -2027,25 +2037,27 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /*
oldpath = estrndup(phar->fname, phar->fname_len);
- if ((oldname = zend_memrchr(phar->fname, '/', phar->fname_len))) {
- ++oldname;
+
+ const char *old_name = zend_memrchr(phar->fname, '/', phar->fname_len);
+ if (old_name) {
+ ++old_name;
} else {
- oldname = phar->fname;
+ old_name = phar->fname;
}
- oldname_len = strlen(oldname);
+ size_t old_name_len = strlen(old_name);
/* Copy the old name to create base for the new name */
- basename = estrndup(oldname, oldname_len);
+ basename = estrndup(old_name, old_name_len);
phar_ext_list_len = sizeof(phar_ext_list)/sizeof(phar_ext_list[0]);
/* Remove possible PHAR extensions */
/* phar_ext_list must be in order of longest extension to shortest */
for (i=0; i < phar_ext_list_len; i++) {
phar_ext_len = strlen(phar_ext_list[i]);
- if (phar_ext_len && oldname_len > phar_ext_len) {
+ if (phar_ext_len && old_name_len > phar_ext_len) {
/* Check if the basename strings ends with the extension */
- if (memcmp(phar_ext_list[i], basename + (oldname_len - phar_ext_len), phar_ext_len) == 0) {
- ext_pos = basename + (oldname_len - phar_ext_len);
+ if (memcmp(phar_ext_list[i], basename + (old_name_len - phar_ext_len), phar_ext_len) == 0) {
+ ext_pos = basename + (old_name_len - phar_ext_len);
ext_pos[0] = '\0';
break;
}
@@ -2069,7 +2081,7 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /*
spprintf(&newname, 0, "%s.%s", basename, ext);
efree(basename);
- basepath = estrndup(oldpath, (strlen(oldpath) - oldname_len));
+ basepath = estrndup(oldpath, (strlen(oldpath) - old_name_len));
new_len = spprintf(&newpath, 0, "%s%s", basepath, newname);
phar->fname_len = new_len;
phar->fname = newpath;
@@ -3379,7 +3391,7 @@ PHP_METHOD(Phar, copy)
{
char *error;
const char *pcr_error;
- phar_entry_info *oldentry, newentry = {0}, *temp;
+ phar_entry_info newentry = {0};
zend_string *new_file = NULL;
zend_string *old_file = NULL;
@@ -3409,13 +3421,15 @@ PHP_METHOD(Phar, copy)
RETURN_THROWS();
}
- if (NULL == (oldentry = zend_hash_find_ptr(&phar_obj->archive->manifest, old_file)) || oldentry->is_deleted) {
+ phar_entry_info *oldentry = zend_hash_find_ptr(&phar_obj->archive->manifest, old_file);
+ if (!oldentry || oldentry->is_deleted) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0,
"file \"%s\" cannot be copied to file \"%s\", file does not exist in %s", ZSTR_VAL(old_file), ZSTR_VAL(new_file), phar_obj->archive->fname);
RETURN_THROWS();
}
- if (NULL != (temp = zend_hash_find_ptr(&phar_obj->archive->manifest, new_file)) && !temp->is_deleted) {
+ const phar_entry_info *temp = zend_hash_find_ptr(&phar_obj->archive->manifest, new_file);
+ if (temp && !temp->is_deleted) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0,
"file \"%s\" cannot be copied to file \"%s\", file must not already exist in phar %s", ZSTR_VAL(old_file), ZSTR_VAL(new_file), phar_obj->archive->fname);
RETURN_THROWS();
@@ -3502,7 +3516,6 @@ PHP_METHOD(Phar, offsetExists)
PHP_METHOD(Phar, offsetGet)
{
char *error;
- phar_entry_info *entry;
zend_string *file_name = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "P", &file_name) == FAILURE) {
@@ -3512,7 +3525,8 @@ PHP_METHOD(Phar, offsetGet)
PHAR_ARCHIVE_OBJECT();
/* security is 0 here so that we can get a better error message than "entry doesn't exist" */
- if (!(entry = phar_get_entry_info_dir(phar_obj->archive, ZSTR_VAL(file_name), ZSTR_LEN(file_name), 1, &error, false))) {
+ phar_entry_info *entry = phar_get_entry_info_dir(phar_obj->archive, ZSTR_VAL(file_name), ZSTR_LEN(file_name), 1, &error, false);
+ if (!entry) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Entry %s does not exist%s%s", ZSTR_VAL(file_name), error?", ":"", error?error:"");
} else {
if (entry->is_temp_dir) {
@@ -3553,7 +3567,6 @@ PHP_METHOD(Phar, offsetGet)
static void phar_add_file(phar_archive_data **pphar, zend_string *file_name, const zend_string *content, zval *zresource)
{
char *error;
- phar_entry_data *data;
php_stream *contents_file = NULL;
php_stream_statbuf ssb;
#ifdef PHP_WIN32
@@ -3585,7 +3598,8 @@ static void phar_add_file(phar_archive_data **pphar, zend_string *file_name, con
}
#endif
- if (!(data = phar_get_or_create_entry_data((*pphar)->fname, (*pphar)->fname_len, filename, filename_len, "w+b", 0, &error, true, time(NULL)))) {
+ phar_entry_data *data = phar_get_or_create_entry_data((*pphar)->fname, (*pphar)->fname_len, filename, filename_len, "w+b", 0, &error, true, time(NULL));
+ if (!data) {
if (error) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Entry %s does not exist and cannot be created: %s", filename, error);
efree(error);
@@ -3657,9 +3671,9 @@ finish: ;
static void phar_mkdir(phar_archive_data **pphar, zend_string *dir_name)
{
char *error;
- phar_entry_data *data;
+ phar_entry_data *data = phar_get_or_create_entry_data((*pphar)->fname, (*pphar)->fname_len, ZSTR_VAL(dir_name), ZSTR_LEN(dir_name), "w+b", 2, &error, true, time(NULL));
- if (!(data = phar_get_or_create_entry_data((*pphar)->fname, (*pphar)->fname_len, ZSTR_VAL(dir_name), ZSTR_LEN(dir_name), "w+b", 2, &error, true, time(NULL)))) {
+ if (!data) {
if (error) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Directory %s does not exist and cannot be created: %s", ZSTR_VAL(dir_name), error);
efree(error);
@@ -3731,7 +3745,6 @@ PHP_METHOD(Phar, offsetUnset)
{
char *error;
zend_string *file_name;
- phar_entry_info *entry;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "P", &file_name) == FAILURE) {
RETURN_THROWS();
@@ -3745,7 +3758,8 @@ PHP_METHOD(Phar, offsetUnset)
}
if (zend_hash_exists(&phar_obj->archive->manifest, file_name)) {
- if (NULL != (entry = zend_hash_find_ptr(&phar_obj->archive->manifest, file_name))) {
+ phar_entry_info *entry = zend_hash_find_ptr(&phar_obj->archive->manifest, file_name);
+ if (entry) {
if (entry->is_deleted) {
/* entry is deleted, but has not been flushed to disk yet */
return;
@@ -3798,7 +3812,6 @@ PHP_METHOD(Phar, addFile)
{
zend_string *file_name;
zend_string *local_name = NULL;
- php_stream *resource;
zval zresource;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "P|S!", &file_name, &local_name) == FAILURE) {
@@ -3812,7 +3825,8 @@ PHP_METHOD(Phar, addFile)
RETURN_THROWS();
}
- if (!(resource = php_stream_open_wrapper(ZSTR_VAL(file_name), "rb", 0, NULL))) {
+ php_stream *resource = php_stream_open_wrapper(ZSTR_VAL(file_name), "rb", 0, NULL);
+ if (!resource) {
zend_throw_exception_ex(spl_ce_RuntimeException, 0, "phar error: unable to open file \"%s\" to add to phar archive", ZSTR_VAL(file_name));
RETURN_THROWS();
}
@@ -3850,19 +3864,20 @@ PHP_METHOD(Phar, getStub)
zend_string *buf;
php_stream *fp;
php_stream_filter *filter = NULL;
- phar_entry_info *stub;
ZEND_PARSE_PARAMETERS_NONE();
PHAR_ARCHIVE_OBJECT();
if (phar_obj->archive->is_tar || phar_obj->archive->is_zip) {
+ const phar_entry_info *stub = zend_hash_str_find_ptr(&(phar_obj->archive->manifest), ".phar/stub.php", sizeof(".phar/stub.php")-1);
- if (NULL != (stub = zend_hash_str_find_ptr(&(phar_obj->archive->manifest), ".phar/stub.php", sizeof(".phar/stub.php")-1))) {
+ if (stub) {
if (phar_obj->archive->fp && !phar_obj->archive->is_brandnew && !(stub->flags & PHAR_ENT_COMPRESSION_MASK)) {
fp = phar_obj->archive->fp;
} else {
- if (!(fp = php_stream_open_wrapper(phar_obj->archive->fname, "rb", 0, NULL))) {
+ fp = php_stream_open_wrapper(phar_obj->archive->fname, "rb", 0, NULL);
+ if (!fp) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0, "phar error: unable to open phar \"%s\"", phar_obj->archive->fname);
RETURN_THROWS();
}
@@ -4777,7 +4792,6 @@ PHP_METHOD(PharFileInfo, delMetadata)
PHP_METHOD(PharFileInfo, getContent)
{
char *error;
- php_stream *fp;
phar_entry_info *link;
zend_string *str;
@@ -4804,7 +4818,8 @@ PHP_METHOD(PharFileInfo, getContent)
RETURN_THROWS();
}
- if (!(fp = phar_get_efp(link, false))) {
+ php_stream *fp = phar_get_efp(link, false);
+ if (!fp) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0,
"phar error: Cannot retrieve contents of \"%s\" in phar \"%s\"", ZSTR_VAL(entry_obj->entry->filename), entry_obj->entry->phar->fname);
RETURN_THROWS();
diff --git a/ext/phar/stream.c b/ext/phar/stream.c
index 7abb7e6422e..ea5f652dd56 100644
--- a/ext/phar/stream.c
+++ b/ext/phar/stream.c
@@ -163,11 +163,11 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
char *internal_file;
char *error;
HashTable *pharcontext;
- php_url *resource = NULL;
php_stream *fpf;
zval *pzoption, *metadata;
- if ((resource = phar_parse_url(wrapper, path, mode, options)) == NULL) {
+ php_url *resource = phar_parse_url(wrapper, path, mode, options);
+ if (!resource) {
return NULL;
}
@@ -320,7 +320,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
}
if (!PHAR_G(cwd_init) && (options & STREAM_OPEN_FOR_INCLUDE)) {
- char *entry = ZSTR_VAL(idata->internal_file->filename), *cwd;
+ const char *entry = ZSTR_VAL(idata->internal_file->filename), *cwd;
PHAR_G(cwd_init) = 1;
if ((idata->phar->is_tar || idata->phar->is_zip) && zend_string_equals_literal(idata->internal_file->filename, ".phar/stub.php")) {
@@ -556,13 +556,12 @@ static int phar_stream_stat(php_stream *stream, php_stream_statbuf *ssb) /* {{{
static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int flags,
php_stream_statbuf *ssb, php_stream_context *context) /* {{{ */
{
- php_url *resource = NULL;
char *internal_file;
phar_archive_data *phar;
- phar_entry_info *entry;
size_t internal_file_len;
- if ((resource = phar_parse_url(wrapper, url, "r", flags|PHP_STREAM_URL_STAT_QUIET)) == NULL) {
+ php_url *resource = phar_parse_url(wrapper, url, "r", flags|PHP_STREAM_URL_STAT_QUIET);
+ if (!resource) {
return FAILURE;
}
@@ -597,7 +596,8 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
}
internal_file_len = strlen(internal_file);
/* search through the manifest of files, and if we have an exact match, it's a file */
- if (NULL != (entry = zend_hash_str_find_ptr(&phar->manifest, internal_file, internal_file_len))) {
+ phar_entry_info *entry = zend_hash_str_find_ptr(&phar->manifest, internal_file, internal_file_len);
+ if (entry) {
phar_dostat(phar, entry, ssb, false);
php_url_free(resource);
return SUCCESS;
@@ -636,7 +636,9 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
goto free_resource;
}
efree(test);
- if (NULL == (entry = zend_hash_str_find_ptr(&phar->manifest, internal_file, internal_file_len))) {
+
+ entry = zend_hash_str_find_ptr(&phar->manifest, internal_file, internal_file_len);
+ if (!entry) {
goto free_resource;
}
phar_dostat(phar, entry, ssb, false);
@@ -656,13 +658,13 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
*/
static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context) /* {{{ */
{
- php_url *resource;
char *internal_file, *error;
size_t internal_file_len;
phar_entry_data *idata;
phar_archive_data *pphar;
- if ((resource = phar_parse_url(wrapper, url, "rb", options)) == NULL) {
+ php_url *resource = phar_parse_url(wrapper, url, "rb", options);
+ if (!resource) {
php_stream_wrapper_log_error(wrapper, options, "phar error: unlink failed");
return 0;
}
@@ -728,16 +730,15 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int
static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from, const char *url_to, int options, php_stream_context *context) /* {{{ */
{
- php_url *resource_from, *resource_to;
char *error;
phar_archive_data *phar, *pfrom, *pto;
- phar_entry_info *entry;
bool is_dir = false;
bool is_modified = false;
error = NULL;
- if ((resource_from = phar_parse_url(wrapper, url_from, "wb", options|PHP_STREAM_URL_STAT_QUIET)) == NULL) {
+ php_url *resource_from = phar_parse_url(wrapper, url_from, "wb", options|PHP_STREAM_URL_STAT_QUIET);
+ if (!resource_from) {
php_error_docref(NULL, E_WARNING, "phar error: cannot rename \"%s\" to \"%s\": invalid or non-writable url \"%s\"", url_from, url_to, url_from);
return 0;
}
@@ -753,7 +754,8 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from
return 0;
}
- if ((resource_to = phar_parse_url(wrapper, url_to, "wb", options|PHP_STREAM_URL_STAT_QUIET)) == NULL) {
+ php_url *resource_to = phar_parse_url(wrapper, url_to, "wb", options|PHP_STREAM_URL_STAT_QUIET);
+ if (!resource_to) {
php_url_free(resource_from);
php_error_docref(NULL, E_WARNING, "phar error: cannot rename \"%s\" to \"%s\": invalid or non-writable url \"%s\"", url_from, url_to, url_to);
return 0;
@@ -822,7 +824,8 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from
return 0;
}
- if (NULL != (entry = zend_hash_str_find_ptr(&(phar->manifest), ZSTR_VAL(resource_from->path)+1, ZSTR_LEN(resource_from->path)-1))) {
+ phar_entry_info *entry = zend_hash_str_find_ptr(&(phar->manifest), ZSTR_VAL(resource_from->path)+1, ZSTR_LEN(resource_from->path)-1);
+ if (entry) {
phar_entry_info new, *source;
/* perform rename magic */
diff --git a/ext/phar/tar.c b/ext/phar/tar.c
index 844f613983f..0c042517125 100644
--- a/ext/phar/tar.c
+++ b/ext/phar/tar.c
@@ -658,11 +658,9 @@ zend_result phar_parse_tarfile(php_stream* fp, const char *fname, size_t fname_l
myphar = actual;
if (actual_alias) {
- phar_archive_data *fd_ptr;
-
myphar->is_temporary_alias = 0;
-
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), actual_alias, myphar->alias_len))) {
+ phar_archive_data *fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), actual_alias, myphar->alias_len);
+ if (fd_ptr) {
if (SUCCESS != phar_free_alias(fd_ptr)) {
if (error) {
spprintf(error, 4096, "phar error: Unable to add tar-based phar \"%s\", alias is already in use", fname);
@@ -674,10 +672,9 @@ zend_result phar_parse_tarfile(php_stream* fp, const char *fname, size_t fname_l
zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), actual_alias, myphar->alias_len, myphar);
} else {
- phar_archive_data *fd_ptr;
-
if (alias_len) {
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
+ phar_archive_data *fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
+ if (fd_ptr) {
if (SUCCESS != phar_free_alias(fd_ptr)) {
if (error) {
spprintf(error, 4096, "phar error: Unable to add tar-based phar \"%s\", alias is already in use", fname);
@@ -909,7 +906,7 @@ ZEND_ATTRIBUTE_NONNULL static int phar_tar_setupmetadata(zval *zv, void *argumen
{
struct _phar_pass_tar_info *i = (struct _phar_pass_tar_info *)argument;
char **error = i->error;
- phar_entry_info *entry = (phar_entry_info *)Z_PTR_P(zv), *metadata, newentry = {0};
+ phar_entry_info *entry = (phar_entry_info *)Z_PTR_P(zv), newentry = {0};
if (zend_string_starts_with_literal(entry->filename, ".phar/.metadata")) {
if (zend_string_equals_literal(entry->filename, ".phar/.metadata.bin")) {
@@ -937,7 +934,8 @@ ZEND_ATTRIBUTE_NONNULL static int phar_tar_setupmetadata(zval *zv, void *argumen
return ZEND_HASH_APPLY_KEEP;
}
- if (NULL != (metadata = zend_hash_find_ptr(&entry->phar->manifest, lookfor))) {
+ phar_entry_info *metadata = zend_hash_find_ptr(&entry->phar->manifest, lookfor);
+ if (metadata) {
int ret;
ret = phar_tar_setmetadata(&entry->metadata_tracker, metadata, error);
zend_string_efree(lookfor);
@@ -949,7 +947,8 @@ ZEND_ATTRIBUTE_NONNULL static int phar_tar_setupmetadata(zval *zv, void *argumen
newentry.tar_type = TAR_FILE;
newentry.is_tar = 1;
- if (NULL == (metadata = zend_hash_add_mem(&entry->phar->manifest, lookfor, &newentry, sizeof(phar_entry_info)))) {
+ metadata = zend_hash_add_mem(&entry->phar->manifest, lookfor, &newentry, sizeof(phar_entry_info));
+ if (!metadata) {
zend_string_efree(lookfor);
spprintf(error, 0, "phar tar error: unable to add magic metadata file to manifest for file \"%s\"", ZSTR_VAL(entry->filename));
return ZEND_HASH_APPLY_STOP;
@@ -1104,8 +1103,8 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 4) int phar_tar_flush(phar_archive_data *phar, ze
pass.free_ufp = true;
if (phar_metadata_tracker_has_data(&phar->metadata_tracker, phar->is_persistent)) {
- phar_entry_info *mentry;
- if (NULL != (mentry = zend_hash_str_find_ptr(&(phar->manifest), ".phar/.metadata.bin", sizeof(".phar/.metadata.bin")-1))) {
+ phar_entry_info *mentry = zend_hash_str_find_ptr(&(phar->manifest), ZEND_STRL(".phar/.metadata.bin"));
+ if (mentry) {
if (ZEND_HASH_APPLY_KEEP != phar_tar_setmetadata(&phar->metadata_tracker, mentry, error)) {
if (must_close_old_file) {
php_stream_close(oldfile);
@@ -1120,7 +1119,8 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 4) int phar_tar_flush(phar_archive_data *phar, ze
newentry.tar_type = TAR_FILE;
newentry.is_tar = 1;
- if (NULL == (mentry = zend_hash_add_mem(&phar->manifest, newentry.filename, &newentry, sizeof(phar_entry_info)))) {
+ mentry = zend_hash_add_mem(&phar->manifest, newentry.filename, &newentry, sizeof(phar_entry_info));
+ if (!mentry) {
zend_string_efree(newentry.filename);
spprintf(error, 0, "phar tar error: unable to add magic metadata file to manifest for phar archive \"%s\"", phar->fname);
if (must_close_old_file) {
diff --git a/ext/phar/util.c b/ext/phar/util.c
index e0f4dc3da6c..5cd51c65ba9 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -493,14 +493,16 @@ ZEND_ATTRIBUTE_NONNULL zend_result phar_get_entry_data(phar_entry_data **ret, co
}
really_get_entry:
if (allow_dir) {
- if ((entry = phar_get_entry_info_dir(phar, path, path_len, allow_dir, for_create && !PHAR_G(readonly) && !phar->is_data ? NULL : error, security)) == NULL) {
+ entry = phar_get_entry_info_dir(phar, path, path_len, allow_dir, for_create && !PHAR_G(readonly) && !phar->is_data ? NULL : error, security);
+ if (!entry) {
if (for_create && (!PHAR_G(readonly) || phar->is_data)) {
return SUCCESS;
}
return FAILURE;
}
} else {
- if ((entry = phar_get_entry_info(phar, path, path_len, for_create && !PHAR_G(readonly) && !phar->is_data ? NULL : error, security)) == NULL) {
+ entry = phar_get_entry_info(phar, path, path_len, for_create && !PHAR_G(readonly) && !phar->is_data ? NULL : error, security);
+ if (!entry) {
if (for_create && (!PHAR_G(readonly) || phar->is_data)) {
return SUCCESS;
}
@@ -612,7 +614,7 @@ ZEND_ATTRIBUTE_NONNULL zend_result phar_get_entry_data(phar_entry_data **ret, co
ZEND_ATTRIBUTE_NONNULL phar_entry_data *phar_get_or_create_entry_data(char *fname, size_t fname_len, char *path, size_t path_len, const char *mode, char allow_dir, char **error, bool security, uint32_t timestamp) /* {{{ */
{
phar_archive_data *phar;
- phar_entry_info *entry, etemp;
+ phar_entry_info etemp;
phar_entry_data *ret;
const char *pcr_error;
char is_dir;
@@ -682,7 +684,8 @@ ZEND_ATTRIBUTE_NONNULL phar_entry_data *phar_get_or_create_entry_data(char *fnam
etemp.tar_type = etemp.is_dir ? TAR_DIR : TAR_FILE;
}
- if (NULL == (entry = zend_hash_add_mem(&phar->manifest, etemp.filename, &etemp, sizeof(phar_entry_info)))) {
+ phar_entry_info *entry = zend_hash_add_mem(&phar->manifest, etemp.filename, &etemp, sizeof(phar_entry_info));
+ if (!entry) {
php_stream_close(etemp.fp);
spprintf(error, 0, "phar error: unable to add new entry \"%s\" to phar \"%s\"",
ZSTR_VAL(etemp.filename), phar->fname);
@@ -1001,7 +1004,8 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
}
if (alias && alias_len) {
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
+ fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
+ if (fd_ptr) {
alias_success:
if (fname && (fname_len != fd_ptr->fname_len || strncmp(fname, fd_ptr->fname, fname_len))) {
if (error) {
@@ -1037,7 +1041,8 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
size_t save_len = fname_len;
if (fname && fname_len) {
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), fname, fname_len))) {
+ fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), fname, fname_len);
+ if (fd_ptr) {
*archive = fd_ptr;
fd = fd_ptr;
@@ -1089,7 +1094,8 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
return SUCCESS;
}
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), save, save_len))) {
+ fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), save, save_len);
+ if (fd_ptr) {
fd = *archive = fd_ptr;
PHAR_G(last_phar) = fd;
@@ -1127,7 +1133,8 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
return FAILURE;
}
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), fname, fname_len))) {
+ fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), fname, fname_len);
+ if (fd_ptr) {
realpath_success:
*archive = fd_ptr;
fd = fd_ptr;
@@ -1215,7 +1222,6 @@ phar_entry_info *phar_get_entry_info(phar_archive_data *phar, char *path, size_t
phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, size_t path_len, char dir, char **error, bool security) /* {{{ */
{
const char *pcr_error;
- phar_entry_info *entry;
bool is_dir;
#ifdef PHP_WIN32
@@ -1260,7 +1266,8 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, si
path_len--;
}
- if (NULL != (entry = zend_hash_str_find_ptr(&phar->manifest, path, path_len))) {
+ phar_entry_info *entry = zend_hash_str_find_ptr(&phar->manifest, path, path_len);
+ if (entry) {
if (entry->is_deleted) {
/* entry is deleted, but has not been flushed to disk yet */
return NULL;
@@ -1304,7 +1311,8 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, si
size_t test_len;
php_stream_statbuf ssb;
- if (NULL == (entry = zend_hash_find_ptr(&phar->manifest, str_key))) {
+ entry = zend_hash_find_ptr(&phar->manifest, str_key);
+ if (!entry) {
if (error) {
spprintf(error, 4096, "phar internal error: mounted path \"%s\" could not be retrieved from manifest", ZSTR_VAL(str_key));
}
@@ -1353,7 +1361,8 @@ phar_entry_info *phar_get_entry_info_dir(phar_archive_data *phar, char *path, si
efree(test);
- if (NULL == (entry = zend_hash_str_find_ptr(&phar->manifest, path, path_len))) {
+ entry = zend_hash_str_find_ptr(&phar->manifest, path, path_len);
+ if (!entry) {
if (error) {
spprintf(error, 4096, "phar error: path \"%s\" exists as file \"%s\" and could not be retrieved after being mounted", path, test);
}
@@ -1522,17 +1531,22 @@ zend_result phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t s
pfp = php_stream_open_wrapper(pfile, "rb", 0, NULL);
efree(pfile);
- if (!pfp || !(pubkey = php_stream_copy_to_mem(pfp, PHP_STREAM_COPY_ALL, 0)) || !ZSTR_LEN(pubkey)) {
- if (pfp) {
- php_stream_close(pfp);
- }
+ if (!pfp) {
if (error) {
*error = estrdup("openssl public key could not be read");
}
return FAILURE;
}
+ pubkey = php_stream_copy_to_mem(pfp, PHP_STREAM_COPY_ALL, 0);
php_stream_close(pfp);
+ if (!pubkey || !ZSTR_LEN(pubkey)) {
+ if (error) {
+ *error = estrdup("openssl public key could not be read");
+ }
+ return FAILURE;
+ }
+
#ifndef PHAR_HAVE_OPENSSL
tempsig = sig_len;
diff --git a/ext/phar/zip.c b/ext/phar/zip.c
index f757adc90c8..ec23603d9be 100644
--- a/ext/phar/zip.c
+++ b/ext/phar/zip.c
@@ -726,7 +726,6 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
zend_hash_str_add_ptr(&(PHAR_G(phar_fname_map)), mydata->fname, fname_len, mydata);
if (actual_alias) {
- phar_archive_data *fd_ptr;
if (!phar_validate_alias(actual_alias, mydata->alias_len)) {
if (error) {
@@ -739,7 +738,8 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
mydata->is_temporary_alias = 0;
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), actual_alias, mydata->alias_len))) {
+ phar_archive_data *fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), actual_alias, mydata->alias_len);
+ if (fd_ptr) {
if (SUCCESS != phar_free_alias(fd_ptr)) {
if (error) {
spprintf(error, 4096, "phar error: Unable to add zip-based phar \"%s\" with implicit alias, alias is already in use", fname);
@@ -758,10 +758,9 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), mydata->alias, mydata->alias_len, mydata);
} else {
- phar_archive_data *fd_ptr;
-
if (alias_len) {
- if (NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
+ phar_archive_data *fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
+ if (fd_ptr) {
if (SUCCESS != phar_free_alias(fd_ptr)) {
if (error) {
spprintf(error, 4096, "phar error: Unable to add zip-based phar \"%s\" with explicit alias, alias is already in use", fname);