diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index db2856309fcb..8d7632fbb4dd 100644 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -146,7 +146,7 @@ ZEND_BEGIN_MODULE_GLOBALS(phar) char *openssl_privatekey; uint32_t openssl_privatekey_len; /* phar_get_archive cache */ - char* last_phar_name; + const char *last_phar_name; uint32_t last_phar_name_len; uint32_t last_alias_len; const char* last_alias; @@ -245,9 +245,9 @@ typedef struct _phar_entry_info { struct _phar_archive_data { char *fname; uint32_t fname_len; - /* for phar_detect_fname_ext, this stores the location of the file extension within fname */ + /* The ext field stores the location of the file extension from the fname field, and thus should never be freed. */ uint32_t ext_len; - char *ext; + const char *ext; char *alias; uint32_t alias_len; char version[12]; diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 377f35832910..b00bfa1677d4 100644 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -2113,7 +2113,7 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /* goto err_reused_oldpath; } if (!phar->is_data) { - if (SUCCESS != phar_detect_phar_fname_ext(newpath, phar->fname_len, (const char **) &(phar->ext), &ext_len, 1, 1, true)) { + if (SUCCESS != phar_detect_phar_fname_ext(newpath, phar->fname_len, &(phar->ext), &ext_len, 1, 1, true)) { zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "phar \"%s\" has invalid extension %s", phar->fname, ext); goto err_reused_oldpath; } @@ -2136,7 +2136,7 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext) /* } else { - if (SUCCESS != phar_detect_phar_fname_ext(newpath, phar->fname_len, (const char **) &(phar->ext), &ext_len, 0, 1, true)) { + if (SUCCESS != phar_detect_phar_fname_ext(newpath, phar->fname_len, &(phar->ext), &ext_len, 0, 1, true)) { zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "data phar \"%s\" has invalid extension %s", phar->fname, ext); goto err_reused_oldpath; }