1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Remove the Opcache SAPI whitelist

Closes GH-19351
This commit is contained in:
Arnaud Le Blanc
2025-08-02 11:16:32 +02:00
parent 3ddbad9589
commit 3088d64068

View File

@@ -2842,39 +2842,12 @@ static void zps_startup_failure(const char *reason, const char *api_reason, int
zend_llist_del_element(&zend_extensions, NULL, (int (*)(void *, void *))cb);
}
static inline zend_result accel_find_sapi(void)
/* Return whether we are running a CLI (Command LIne) SAPI for which Opcache is
* disabled when `opcache.enable_cli=0` */
static inline bool accel_sapi_is_cli(void)
{
static const char *supported_sapis[] = {
"apache",
"fastcgi",
"cli-server",
"cgi-fcgi",
"fpm-fcgi",
"fpmi-fcgi",
"apache2handler",
"litespeed",
"uwsgi",
"fuzzer",
"frankenphp",
"ngx-php",
NULL
};
const char **sapi_name;
if (sapi_module.name) {
for (sapi_name = supported_sapis; *sapi_name; sapi_name++) {
if (strcmp(sapi_module.name, *sapi_name) == 0) {
return SUCCESS;
}
}
if (ZCG(accel_directives).enable_cli && (
strcmp(sapi_module.name, "cli") == 0
|| strcmp(sapi_module.name, "phpdbg") == 0)) {
return SUCCESS;
}
}
return FAILURE;
return strcmp(sapi_module.name, "cli") == 0
|| strcmp(sapi_module.name, "phpdbg") == 0;
}
static zend_result zend_accel_init_shm(void)
@@ -3197,15 +3170,9 @@ static int accel_startup(zend_extension *extension)
}
#endif
/* no supported SAPI found - disable acceleration and stop initialization */
if (accel_find_sapi() == FAILURE) {
if (!ZCG(accel_directives).enable_cli && accel_sapi_is_cli()) {
accel_startup_ok = false;
if (!ZCG(accel_directives).enable_cli &&
strcmp(sapi_module.name, "cli") == 0) {
zps_startup_failure("Opcode Caching is disabled for CLI", NULL, accelerator_remove_cb);
} else {
zps_startup_failure("Opcode Caching is only supported in Apache, FPM, FastCGI, FrankenPHP, LiteSpeed and uWSGI SAPIs", NULL, accelerator_remove_cb);
}
zps_startup_failure("Opcode Caching is disabled for CLI", NULL, accelerator_remove_cb);
return SUCCESS;
}