[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-cvs
Subject:    [PHP-CVS] [php-src] master: Refacto php_module_startup() (#8303)
From:       George Peter Banyard via GitHub <noreply () php ! net>
Date:       2022-04-27 22:11:00
Message-ID: sekCWUVKiUY9xJ5ptxO4cVos4ro1BmOtvTvkT5P6wc () main ! php ! net
[Download RAW message or body]

Author: George Peter Banyard (Girgias)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2022-04-27T23:07:11+01:00

Commit: https://github.com/php/php-src/commit/b5db594fd277464104fce814d22f0b2207d6502d
 Raw diff: https://github.com/php/php-src/commit/b5db594fd277464104fce814d22f0b2207d6502d.diff


Refacto php_module_startup() (#8303)

It only ever uses at most 1 additional modules

Changed paths:
  M  main/main.c
  M  main/php_main.h
  M  sapi/apache2handler/sapi_apache2.c
  M  sapi/cgi/cgi_main.c
  M  sapi/cli/php_cli.c
  M  sapi/cli/php_cli_server.c
  M  sapi/embed/php_embed.c
  M  sapi/fpm/fpm/fpm_main.c
  M  sapi/fuzzer/fuzzer-sapi.c
  M  sapi/litespeed/lsapi_main.c
  M  sapi/phpdbg/phpdbg.c


Diff:

diff --git a/main/main.c b/main/main.c
index dc705fcdbdfe..512a7a8b7f0b 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1960,24 +1960,6 @@ int php_register_extensions(zend_module_entry * const * ptr, \
int count)  return SUCCESS;
 }
 
-/* A very long time ago php_module_startup() was refactored in a way
- * which broke calling it with more than one additional module.
- * This alternative to php_register_extensions() works around that
- * by walking the shallower structure.
- *
- * See algo: https://bugs.php.net/bug.php?id=63159
- */
-static int php_register_extensions_bc(zend_module_entry *ptr, int count)
-{
-	while (count--) {
-		if (zend_register_internal_module(ptr++) == NULL) {
-			return FAILURE;
-		}
-	}
-	return SUCCESS;
-}
-/* }}} */
-
 #ifdef PHP_WIN32
 static _invalid_parameter_handler old_invalid_parameter_handler;
 
@@ -2012,11 +1994,12 @@ void dummy_invalid_parameter_handler(
 #endif
 
 /* {{{ php_module_startup */
-int php_module_startup(sapi_module_struct *sf, zend_module_entry \
*additional_modules, uint32_t num_additional_modules) +zend_result \
php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_module)  {
 	zend_utility_functions zuf;
 	zend_utility_values zuv;
-	int retval = SUCCESS, module_number=0;	/* for REGISTER_INI_ENTRIES() */
+	zend_result retval = SUCCESS;
+	int module_number = 0;	/* for REGISTER_INI_ENTRIES() */
 	char *php_os;
 	zend_module_entry *module;
 
@@ -2243,7 +2226,9 @@ int php_module_startup(sapi_module_struct *sf, \
zend_module_entry *additional_mod  }
 
 	/* start additional PHP extensions */
-	php_register_extensions_bc(additional_modules, num_additional_modules);
+	if (additional_module && (zend_register_internal_module(additional_module) == \
NULL)) { +		return FAILURE;
+	}
 
 	/* load and startup extensions compiled as shared objects (aka DLLs)
 	   as requested by php.ini entries
@@ -2278,7 +2263,7 @@ int php_module_startup(sapi_module_struct *sf, \
zend_module_entry *additional_mod  module->version = PHP_VERSION;
 		module->info_func = PHP_MINFO(php_core);
 	}
-	
+
 	/* freeze the list of observer fcall_init handlers */
 	zend_observer_post_startup();
 
diff --git a/main/php_main.h b/main/php_main.h
index 661c88446524..50351da0e639 100644
--- a/main/php_main.h
+++ b/main/php_main.h
@@ -25,7 +25,7 @@
 BEGIN_EXTERN_C()
 PHPAPI int php_request_startup(void);
 PHPAPI void php_request_shutdown(void *dummy);
-PHPAPI int php_module_startup(sapi_module_struct *sf, zend_module_entry \
*additional_modules, uint32_t num_additional_modules); +PHPAPI zend_result \
php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_module);  \
PHPAPI void php_module_shutdown(void);  PHPAPI int \
php_module_shutdown_wrapper(sapi_module_struct *sapi_globals);  
diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c
index 7933e6accea3..5238b02bbd62 100644
--- a/sapi/apache2handler/sapi_apache2.c
+++ b/sapi/apache2handler/sapi_apache2.c
@@ -378,10 +378,7 @@ extern zend_module_entry php_apache_module;
 
 static int php_apache2_startup(sapi_module_struct *sapi_module)
 {
-	if (php_module_startup(sapi_module, &php_apache_module, 1)==FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, &php_apache_module);
 }
 
 static sapi_module_struct apache2_sapi_module = {
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index ef6a62be73c8..4f9a71bfac6c 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -967,10 +967,7 @@ static int sapi_cgi_deactivate(void)
 
 static int php_cgi_startup(sapi_module_struct *sapi_module)
 {
-	if (php_module_startup(sapi_module, &cgi_module_entry, 1) == FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, &cgi_module_entry);
 }
 
 /* {{{ sapi_module_struct cgi_sapi_module */
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c
index 97955eadd1f1..5a161fcb23c4 100644
--- a/sapi/cli/php_cli.c
+++ b/sapi/cli/php_cli.c
@@ -407,10 +407,7 @@ static void sapi_cli_send_header(sapi_header_struct \
*sapi_header, void *server_c  
 static int php_cli_startup(sapi_module_struct *sapi_module) /* {{{ */
 {
-	if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, NULL);
 }
 /* }}} */
 
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index 6e7a909b128d..7a8ec7918e23 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -498,7 +498,7 @@ const zend_function_entry server_additional_functions[] = {
 
 static int sapi_cli_server_startup(sapi_module_struct *sapi_module) /* {{{ */
 {
-	return php_module_startup(sapi_module, &cli_server_module_entry, 1);
+	return php_module_startup(sapi_module, &cli_server_module_entry);
 } /* }}} */
 
 static size_t sapi_cli_server_ub_write(const char *str, size_t str_length) /* {{{ */
diff --git a/sapi/embed/php_embed.c b/sapi/embed/php_embed.c
index 1679246ab987..4b94bd98e66d 100644
--- a/sapi/embed/php_embed.c
+++ b/sapi/embed/php_embed.c
@@ -119,10 +119,7 @@ static void php_embed_register_variables(zval *track_vars_array)
 /* Module initialization (MINIT) */
 static int php_embed_startup(sapi_module_struct *sapi_module)
 {
-	if (php_module_startup(sapi_module, NULL, 0) == FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, NULL);
 }
 
 EMBED_SAPI_API sapi_module_struct php_embed_module = {
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
index b04763d62489..8ce59a43b414 100644
--- a/sapi/fpm/fpm/fpm_main.c
+++ b/sapi/fpm/fpm/fpm_main.c
@@ -767,10 +767,7 @@ static int sapi_cgi_deactivate(void) /* {{{ */
 
 static int php_cgi_startup(sapi_module_struct *sapi_module) /* {{{ */
 {
-	if (php_module_startup(sapi_module, &cgi_module_entry, 1) == FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, &cgi_module_entry);
 }
 /* }}} */
 
diff --git a/sapi/fuzzer/fuzzer-sapi.c b/sapi/fuzzer/fuzzer-sapi.c
index a9d2ce89a8b6..3a79e273106f 100644
--- a/sapi/fuzzer/fuzzer-sapi.c
+++ b/sapi/fuzzer/fuzzer-sapi.c
@@ -62,10 +62,7 @@ const char HARDCODED_INI[] =
 
 static int startup(sapi_module_struct *sapi_module)
 {
-	if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
-		return FAILURE;
-	}
-	return SUCCESS;
+	return php_module_startup(sapi_module, NULL);
 }
 
 static size_t ub_write(const char *str, size_t str_length)
diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c
index e034a3fdffa9..b069f6d355b8 100644
--- a/sapi/litespeed/lsapi_main.c
+++ b/sapi/litespeed/lsapi_main.c
@@ -97,7 +97,7 @@ static void init_sapi_from_env(sapi_module_struct *sapi_module)
 /* {{{ php_lsapi_startup */
 static int php_lsapi_startup(sapi_module_struct *sapi_module)
 {
-    if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
+    if (php_module_startup(sapi_module, NULL)==FAILURE) {
         return FAILURE;
     }
     argv0 = sapi_module->executable_location;
@@ -1518,7 +1518,7 @@ int main( int argc, char * argv[] )
 
     lsapi_sapi_module.ini_defaults = sapi_lsapi_ini_defaults;
 
-    if (php_module_startup(&lsapi_sapi_module, &litespeed_module_entry, 1) == \
FAILURE) { +    if (php_module_startup(&lsapi_sapi_module, &litespeed_module_entry) \
== FAILURE) {  #ifdef ZTS
         tsrm_shutdown();
 #endif
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index e8d796771f9b..de05a6fec60b 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -706,7 +706,7 @@ static zend_module_entry sapi_phpdbg_module_entry = {
 
 static inline int php_sapi_phpdbg_module_startup(sapi_module_struct *module) /* {{{ \
*/  {
-	if (php_module_startup(module, &sapi_phpdbg_module_entry, 1) == FAILURE) {
+	if (php_module_startup(module, &sapi_phpdbg_module_entry) == FAILURE) {
 		return FAILURE;
 	}
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic