[wp-trac] [WordPress Trac] #57121: 'get_current_user_id' in 'gettext' filter causing memory error

WordPress Trac noreply at wordpress.org
Thu Nov 17 22:05:17 UTC 2022


#57121: 'get_current_user_id' in 'gettext' filter causing memory error
-------------------------------+---------------------
 Reporter:  adityaarora010196  |       Owner:  (none)
     Type:  defect (bug)       |      Status:  new
 Priority:  normal             |   Milestone:  6.1.2
Component:  Users              |     Version:  6.1
 Severity:  normal             |  Resolution:
 Keywords:                     |     Focuses:
-------------------------------+---------------------
Changes (by SergeyBiryukov):

 * version:  6.1.1 => 6.1
 * component:  General => Users
 * milestone:  Awaiting Review => 6.1.2


Comment:

 Hi there, welcome to WordPress Trac! Thanks for the report.

 I was able to reproduce the issue with this code:
 {{{
 add_filter( 'gettext', function( $translation ) {
         static $call_count = 0;

         if ( $call_count++ > 500 ) {
                 echo implode( '<br />', array_reverse(
 wp_debug_backtrace_summary( null, 0, false ) ) );
                 die();
         }

         $user_id = get_current_user_id();

         return $translation;
 });
 }}}
 which displays the following call stack:
 {{{
 require_once('wp-admin/admin.php')
 require_once('wp-load.php')
 require_once('S:/home/wordpress.test/develop/wp-config.php')
 require_once('wp-settings.php')
 do_action('setup_theme')
 WP_Hook->do_action
 WP_Hook->apply_filters
 create_initial_theme_features
 __
 translate
 apply_filters('gettext')
 WP_Hook->apply_filters
 {closure}
 get_current_user_id
 wp_get_current_user
 _wp_get_current_user
 apply_filters('determine_current_user')
 WP_Hook->apply_filters
 wp_validate_auth_cookie
 wp_hash
 wp_salt
 __
 translate
 apply_filters('gettext')
 WP_Hook->apply_filters
 {closure}
 get_current_user_id
 wp_get_current_user
 _wp_get_current_user
 apply_filters('determine_current_user')
 WP_Hook->apply_filters
 wp_validate_auth_cookie
 wp_hash
 wp_salt
 __
 translate
 apply_filters('gettext')
 ...
 }}}

 This appears to be introduced in [54249] / #55937, where a `__()` function
 call was added to `wp_salt()`.

 `get_current_user_id()` calls the `determine_current_user` filter, which
 calls `wp_validate_auth_cookie()`, which eventually calls `wp_salt()`,
 leading to an infinite loop.

 Moving to 6.1.2 to investigate potential options to fix this.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/57121#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list