Commit 54787f2dda8 for php.net

commit 54787f2dda8bbe5d8315d7f3d5f9e6ed4775c823
Author: Gina Peter Banyard <girgias@php.net>
Date:   Fri Apr 24 14:29:57 2026 +0100

    ext/phar/util.c: remove dup fd variable in phar_get_archive()

    The naming between fd and fd_ptr seem to indicate one is not a pointer, but they both are.
    Moreover, there is no reason to copy the same value to the variables at the same time.

diff --git a/ext/phar/util.c b/ext/phar/util.c
index 71bb5341fb7..491a07c4dd2 100644
--- a/ext/phar/util.c
+++ b/ext/phar/util.c
@@ -962,7 +962,7 @@ zend_result phar_free_alias(const phar_archive_data *phar) /* {{{ */
  */
 zend_result phar_get_archive(phar_archive_data **archive, const char *fname, size_t fname_len, const char *alias, size_t alias_len, char **error) /* {{{ */
 {
-	phar_archive_data *fd, *fd_ptr;
+	phar_archive_data *fd_ptr;

 	phar_request_initialize();

@@ -999,8 +999,7 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
 	if (alias && alias_len) {
 		/* If the alias stored in the last_phar cache matches, just use it directly */
 		if (PHAR_G(last_phar) && alias_len == PHAR_G(last_alias_len) && !memcmp(alias, PHAR_G(last_alias), alias_len)) {
-			fd = PHAR_G(last_phar);
-			fd_ptr = fd;
+			fd_ptr = PHAR_G(last_phar);
 		} else {
 			fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len);
 		}
@@ -1025,9 +1024,8 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
 			}

 			*archive = fd_ptr;
-			fd = fd_ptr;
-			PHAR_G(last_phar) = fd;
-			PHAR_G(last_phar_name) = fd->fname;
+			PHAR_G(last_phar) = fd_ptr;
+			PHAR_G(last_phar_name) = fd_ptr->fname;
 			PHAR_G(last_alias) = alias;
 			PHAR_G(last_alias_len) = alias_len;

@@ -1039,39 +1037,37 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
 		fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_fname_map)), fname, fname_len);
 		if (fd_ptr) {
 			*archive = fd_ptr;
-			fd = fd_ptr;

 			if (alias && alias_len) {
-				if (!fd->is_temporary_alias && (alias_len != fd->alias_len || memcmp(fd->alias, alias, alias_len))) {
+				if (!fd_ptr->is_temporary_alias && (alias_len != fd_ptr->alias_len || memcmp(fd_ptr->alias, alias, alias_len))) {
 					if (error) {
 						spprintf(error, 0, "alias \"%s\" is already used for archive \"%s\" cannot be overloaded with \"%s\"", alias, ZSTR_VAL(fd_ptr->fname), fname);
 					}
 					return FAILURE;
 				}

-				if (fd->alias_len && zend_hash_str_exists(&(PHAR_G(phar_alias_map)), fd->alias, fd->alias_len)) {
-					zend_hash_str_del(&(PHAR_G(phar_alias_map)), fd->alias, fd->alias_len);
+				if (fd_ptr->alias_len && zend_hash_str_exists(&(PHAR_G(phar_alias_map)), fd_ptr->alias, fd_ptr->alias_len)) {
+					zend_hash_str_del(&(PHAR_G(phar_alias_map)), fd_ptr->alias, fd_ptr->alias_len);
 				}

-				zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len, fd);
+				zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len, fd_ptr);
 			}

-			PHAR_G(last_phar) = fd;
-			PHAR_G(last_phar_name) = fd->fname;
-			PHAR_G(last_alias) = fd->alias;
-			PHAR_G(last_alias_len) = fd->alias_len;
+			PHAR_G(last_phar) = fd_ptr;
+			PHAR_G(last_phar_name) = fd_ptr->fname;
+			PHAR_G(last_alias) = fd_ptr->alias;
+			PHAR_G(last_alias_len) = fd_ptr->alias_len;

 			return SUCCESS;
 		}

 		if (PHAR_G(manifest_cached) && NULL != (fd_ptr = zend_hash_str_find_ptr(&cached_phars, fname, fname_len))) {
 			*archive = fd_ptr;
-			fd = fd_ptr;

 			/* this could be problematic - alias should never be different from manifest alias
 			   for cached phars */
-			if (!fd->is_temporary_alias && alias && alias_len) {
-				if (alias_len != fd->alias_len || memcmp(fd->alias, alias, alias_len)) {
+			if (!fd_ptr->is_temporary_alias && alias && alias_len) {
+				if (alias_len != fd_ptr->alias_len || memcmp(fd_ptr->alias, alias, alias_len)) {
 					if (error) {
 						spprintf(error, 0, "alias \"%s\" is already used for archive \"%s\" cannot be overloaded with \"%s\"", alias, ZSTR_VAL(fd_ptr->fname), fname);
 					}
@@ -1079,10 +1075,10 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
 				}
 			}

-			PHAR_G(last_phar) = fd;
-			PHAR_G(last_phar_name) = fd->fname;
-			PHAR_G(last_alias) = fd->alias;
-			PHAR_G(last_alias_len) = fd->alias_len;
+			PHAR_G(last_phar) = fd_ptr;
+			PHAR_G(last_phar_name) = fd_ptr->fname;
+			PHAR_G(last_alias) = fd_ptr->alias;
+			PHAR_G(last_alias_len) = fd_ptr->alias_len;

 			return SUCCESS;
 		}
@@ -1095,12 +1091,12 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz
 		}

 		if (fd_ptr) {
-			fd = *archive = fd_ptr;
+			*archive = fd_ptr;

-			PHAR_G(last_phar) = fd;
-			PHAR_G(last_phar_name) = fd->fname;
-			PHAR_G(last_alias) = fd->alias;
-			PHAR_G(last_alias_len) = fd->alias_len;
+			PHAR_G(last_phar) = fd_ptr;
+			PHAR_G(last_phar_name) = fd_ptr->fname;
+			PHAR_G(last_alias) = fd_ptr->alias;
+			PHAR_G(last_alias_len) = fd_ptr->alias_len;

 			return SUCCESS;
 		}
@@ -1127,16 +1123,15 @@ zend_result phar_get_archive(phar_archive_data **archive, const char *fname, siz

 		if (fd_ptr) {
 			*archive = fd_ptr;
-			fd = fd_ptr;

 			if (alias && alias_len) {
-				zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len, fd);
+				zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len, fd_ptr);
 			}

-			PHAR_G(last_phar) = fd;
-			PHAR_G(last_phar_name) = fd->fname;
-			PHAR_G(last_alias) = fd->alias;
-			PHAR_G(last_alias_len) = fd->alias_len;
+			PHAR_G(last_phar) = fd_ptr;
+			PHAR_G(last_phar_name) = fd_ptr->fname;
+			PHAR_G(last_alias) = fd_ptr->alias;
+			PHAR_G(last_alias_len) = fd_ptr->alias_len;

 			return SUCCESS;
 		}