@@ -1348,6 +1348,13 @@ static void zend_accel_add_key(const char *key, unsigned int key_length, zend_ac
13481348 }
13491349}
13501350
1351+ static zend_always_inline zend_bool is_phar_file (zend_string * filename )
1352+ {
1353+ return filename && ZSTR_LEN (filename ) >= sizeof (".phar" ) &&
1354+ !memcmp (ZSTR_VAL (filename ) + ZSTR_LEN (filename ) - (sizeof (".phar" )- 1 ), ".phar" , sizeof (".phar" )- 1 ) &&
1355+ !strstr (ZSTR_VAL (filename ), "://" );
1356+ }
1357+
13511358#ifdef HAVE_OPCACHE_FILE_CACHE
13521359static zend_persistent_script * store_script_in_file_cache (zend_persistent_script * new_persistent_script )
13531360{
@@ -1372,10 +1379,7 @@ static zend_persistent_script *store_script_in_file_cache(zend_persistent_script
13721379
13731380 zend_shared_alloc_destroy_xlat_table ();
13741381
1375- new_persistent_script -> is_phar =
1376- new_persistent_script -> script .filename &&
1377- strstr (ZSTR_VAL (new_persistent_script -> script .filename ), ".phar" ) &&
1378- !strstr (ZSTR_VAL (new_persistent_script -> script .filename ), "://" );
1382+ new_persistent_script -> is_phar = is_phar_file (new_persistent_script -> script .filename );
13791383
13801384 /* Consistency check */
13811385 if ((char * )new_persistent_script -> mem + new_persistent_script -> size != (char * )ZCG (mem )) {
@@ -1540,10 +1544,7 @@ static zend_persistent_script *cache_script_in_shared_memory(zend_persistent_scr
15401544
15411545 zend_shared_alloc_destroy_xlat_table ();
15421546
1543- new_persistent_script -> is_phar =
1544- new_persistent_script -> script .filename &&
1545- strstr (ZSTR_VAL (new_persistent_script -> script .filename ), ".phar" ) &&
1546- !strstr (ZSTR_VAL (new_persistent_script -> script .filename ), "://" );
1547+ new_persistent_script -> is_phar = is_phar_file (new_persistent_script -> script .filename );
15471548
15481549 /* Consistency check */
15491550 if ((char * )new_persistent_script -> mem + new_persistent_script -> size != (char * )ZCG (mem )) {
0 commit comments