Skip to:
Content

BuddyPress.org

Changeset 14057


Ignore:
Timestamp:
10/22/2024 11:04:18 PM (21 months ago)
Author:
imath
Message:

Update stable tag to 14.2.1 and apply 14.2.1 security fix (trunk)

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/bp-core-avatars.php

    r13927 r14057  
    12191219 */
    12201220function bp_avatar_handle_capture( $data = '', $item_id = 0, $retval = 'boolean' ) {
    1221         $return = $retval;
     1221        $return  = $retval;
     1222        $item_id = (int) $item_id;
    12221223
    12231224        if ( empty( $data ) || empty( $item_id ) ) {
     
    13911392        }
    13921393
     1394        // Sanitize object id.
     1395        $item_id = (int) $avatar_data['item_id'];
     1396
    13931397        // Capability check.
    13941398        if ( ! bp_attachments_current_user_can( 'edit_avatar', $avatar_data ) ) {
     
    14041408                }
    14051409
    1406                 $cropped_webcam_avatar = bp_avatar_handle_capture( $webcam_avatar, $avatar_data['item_id'], 'array' );
     1410                $cropped_webcam_avatar = bp_avatar_handle_capture( $webcam_avatar, $item_id, 'array' );
    14071411
    14081412                if ( ! $cropped_webcam_avatar ) {
     
    14191423                                                array(
    14201424                                                        'object'  => $avatar_data['object'],
    1421                                                         'item_id' => $avatar_data['item_id'],
     1425                                                        'item_id' => $item_id,
    14221426                                                        'html'    => false,
    14231427                                                        'type'    => 'full',
     
    14261430                                ),
    14271431                                'feedback_code' => 2,
    1428                                 'item_id'       => $avatar_data['item_id'],
     1432                                'item_id'       => $item_id,
    14291433                        );
    14301434
    14311435                        /** This action is documented in wp-includes/deprecated.php */
    1432                         do_action_deprecated( 'xprofile_avatar_uploaded', array( (int) $avatar_data['item_id'], $avatar_data['type'], $avatar_data ), '6.0.0', 'bp_members_avatar_uploaded' );
     1436                        do_action_deprecated( 'xprofile_avatar_uploaded', array( $item_id, $avatar_data['type'], $avatar_data ), '6.0.0', 'bp_members_avatar_uploaded' );
    14331437
    14341438                        /**
     
    14431447                         * @param array  $cropped_webcam_avatar Array containing the full, thumb avatar and the timestamp.
    14441448                         */
    1445                         do_action( 'bp_members_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $avatar_data, $cropped_webcam_avatar );
     1449                        do_action( 'bp_members_avatar_uploaded', $item_id, $avatar_data['type'], $avatar_data, $cropped_webcam_avatar );
    14461450
    14471451                        wp_send_json_success( $return );
     
    14641468        // Crop args.
    14651469        $r = array(
    1466                 'item_id'       => $avatar_data['item_id'],
     1470                'item_id'       => $item_id,
    14671471                'object'        => $avatar_data['object'],
    14681472                'avatar_dir'    => $avatar_dir,
     
    14831487                                        array(
    14841488                                                'object'  => $avatar_data['object'],
    1485                                                 'item_id' => $avatar_data['item_id'],
     1489                                                'item_id' => $item_id,
    14861490                                                'html'    => false,
    14871491                                                'type'    => 'full',
     
    14901494                        ),
    14911495                        'feedback_code' => 2,
    1492                         'item_id'       => $avatar_data['item_id'],
     1496                        'item_id'       => $item_id,
    14931497                );
    14941498
    14951499                if ( 'user' === $avatar_data['object'] ) {
    14961500                        /** This action is documented in wp-includes/deprecated.php */
    1497                         do_action_deprecated( 'xprofile_avatar_uploaded', array( (int) $avatar_data['item_id'], $avatar_data['type'], $r ), '6.0.0', 'bp_members_avatar_uploaded' );
     1501                        do_action_deprecated( 'xprofile_avatar_uploaded', array( $item_id, $avatar_data['type'], $r ), '6.0.0', 'bp_members_avatar_uploaded' );
    14981502
    14991503                        /** This action is documented in bp-core/bp-core-avatars.php */
    1500                         do_action( 'bp_members_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r, $cropped_avatar );
     1504                        do_action( 'bp_members_avatar_uploaded', $item_id, $avatar_data['type'], $r, $cropped_avatar );
    15011505                } elseif ( 'group' === $avatar_data['object'] ) {
    15021506                        /** This action is documented in bp-groups/bp-groups-screens.php */
    1503                         do_action( 'groups_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r, $cropped_avatar );
     1507                        do_action( 'groups_avatar_uploaded', $item_id, $avatar_data['type'], $r, $cropped_avatar );
    15041508                }
    15051509
  • trunk/src/readme.txt

    r14020 r14057  
    88Requires at least: 6.4
    99Tested up to:      6.6
    10 Stable tag:        14.1.0
     10Stable tag:        14.2.1
    1111
    1212Get together safely, in your own way, in WordPress.
     
    131131== Upgrade Notice ==
    132132
     133= 14.2.1 =
     134See: https://codex.buddypress.org/releases/version-14-2-1/
     135
    133136= 14.1.0 =
    134137See: https://codex.buddypress.org/releases/version-14-1-0/
     
    203206== Changelog ==
    204207
     208= 14.2.1 =
     209See: https://codex.buddypress.org/releases/version-14-2-1/
     210
    205211= 14.1.0 =
    206212See: https://codex.buddypress.org/releases/version-14-1-0/
  • trunk/tests/phpunit/testcases/core/avatars.php

    r13980 r14057  
    88        protected $allowed_image_types = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'webp' );
    99        protected $allowed_image_mimes = array( 'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif', 'image/png', 'image/webp' );
     10        protected $capture = array();
    1011
    1112        private function clean_existing_avatars( $type = 'user' ) {
     
    420421                $this->assertFalse( is_dir( $avatar_dir1 ) );
    421422        }
     423
     424        public function set_capture( $return, $data ) {
     425                $this->capture = $data;
     426                return false;
     427        }
     428
     429        /**
     430         * @group bp_avatar_handle_capture
     431         */
     432        public function test_bp_avatar_handle_capture() {
     433                $u = self::factory()->user->create();
     434                $data = 'hello world';
     435
     436                add_filter( 'bp_core_pre_avatar_handle_crop', array( $this, 'set_capture' ), 10, 2 );
     437
     438                bp_avatar_handle_capture( $data, $u . '/../../../../../../foobar', 'array' );
     439
     440                remove_filter( 'bp_core_pre_avatar_handle_crop', array( $this, 'set_capture' ), 10, 2 );
     441
     442                $expected = '/avatars/' . $u . '/webcam-capture-' . $u . '.png';
     443
     444                $this->assertEquals( $expected, $this->capture['original_file'] );
     445        }
    422446}
Note: See TracChangeset for help on using the changeset viewer.