Make WordPress Core


Ignore:
Timestamp:
10/12/2023 12:32:43 PM (8 months ago)
Author:
jorbin
Message:

Prevent unintended behavior when certain objects are unserialized.

Props ehtis, xknown.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/Requests/src/Iri.php

    r55629 r56835  
    718718    }
    719719
     720    public function __wakeup() {
     721        $class_props = get_class_vars( __CLASS__ );
     722        $string_props = array( 'scheme', 'iuserinfo', 'ihost', 'port', 'ipath', 'iquery', 'ifragment' );
     723        $array_props = array( 'normalization' );
     724        foreach ( $class_props as $prop => $default_value ) {
     725            if ( in_array( $prop, $string_props, true ) && ! is_string( $this->$prop ) ) {
     726                throw new UnexpectedValueException();
     727            } elseif ( in_array( $prop, $array_props, true ) && ! is_array( $this->$prop ) ) {
     728                throw new UnexpectedValueException();
     729            }
     730            $this->$prop = null;
     731        }
     732    }
     733
    720734    /**
    721735     * Set the entire IRI. Returns true on success, false on failure (if there
Note: See TracChangeset for help on using the changeset viewer.