WordPress.org

Make WordPress Core

Ticket #20394: 20394.guard.2.diff

File 20394.guard.2.diff, 4.3 KB (added by maxcutler, 6 years ago)
  • wp-includes/class-wp-xmlrpc-server.php

     
    490490                return $struct;
    491491        }
    492492
     493    /**
     494     * Checks if the method received at least the minimum number of arguments.
     495     *
     496     * @since 3.4
     497     *
     498     * @param string|array $args Sanitize single string or array of strings.
     499     * @param int $count Minimum number of arguments.
     500     * @return boolean if $args contains at least $count arguments.
     501     */
     502    protected function minimum_args( $args, $count ) {
     503        if ( count( $args ) < $count ) {
     504            $this->error = new IXR_Error( 400, __( "Insufficient arguments passed to this XML-RPC method." ) );
     505            return false;
     506        }
     507
     508        return true;
     509    }
     510
    493511        /**
    494512         * Prepares taxonomy data for return in an XML-RPC object.
    495513         *
     
    766784         * @return string post_id
    767785         */
    768786        function wp_newPost( $args ) {
     787
     788        if( ! $this->minimum_args( $args, 4 ) )
     789            return $this->error;
     790
    769791                $this->escape( $args );
    770792
    771793                $blog_id        = (int) $args[0];
     
    10381060         * @return true on success
    10391061         */
    10401062        function wp_editPost( $args ) {
     1063        if( ! $this->minimum_args( $args, 5 ) )
     1064            return $this->error;
     1065
    10411066                $this->escape( $args );
    10421067
    10431068                $blog_id        = (int) $args[0];
     
    10901115         * @return true on success
    10911116         */
    10921117        function wp_deletePost( $args ) {
     1118        if( ! $this->minimum_args( $args, 4 ) )
     1119            return $this->error;
     1120
    10931121                $this->escape( $args );
    10941122
    10951123                $blog_id    = (int) $args[0];
     
    11631191         *  - 'enclosure'
    11641192         */
    11651193        function wp_getPost( $args ) {
     1194        if( ! $this->minimum_args( $args, 4 ) )
     1195            return $this->error;
     1196
    11661197                $this->escape( $args );
    11671198
    11681199                $blog_id            = (int) $args[0];
     
    12171248         * @return array contains a collection of posts.
    12181249         */
    12191250        function wp_getPosts( $args ) {
     1251        if( ! $this->minimum_args( $args, 3 ) )
     1252            return $this->error;
     1253
    12201254                $this->escape( $args );
    12211255
    12221256                $blog_id    = (int) $args[0];
     
    13031337         * @return string term_id
    13041338         */
    13051339        function wp_newTerm( $args ) {
     1340        if( ! $this->minimum_args( $args, 4 ) )
     1341            return $this->error;
     1342
    13061343                $this->escape( $args );
    13071344
    13081345                $blog_id            = (int) $args[0];
     
    13871424         * @return bool True, on success.
    13881425         */
    13891426        function wp_editTerm( $args ) {
     1427        if( ! $this->minimum_args( $args, 5 ) )
     1428            return $this->error;
     1429
    13901430                $this->escape( $args );
    13911431
    13921432                $blog_id            = (int) $args[0];
     
    14761516         * @return boolean|IXR_Error If it suceeded true else a reason why not
    14771517         */
    14781518        function wp_deleteTerm( $args ) {
     1519        if( ! $this->minimum_args( $args, 5 ) )
     1520            return $this->error;
     1521
    14791522                $this->escape( $args );
    14801523
    14811524                $blog_id            = (int) $args[0];
     
    15401583         *  - 'count'
    15411584         */
    15421585        function wp_getTerm( $args ) {
     1586        if( ! $this->minimum_args( $args, 5 ) )
     1587            return $this->error;
     1588
    15431589                $this->escape( $args );
    15441590
    15451591                $blog_id            = (int) $args[0];
     
    15901636         * @return array terms
    15911637         */
    15921638        function wp_getTerms( $args ) {
     1639        if( ! $this->minimum_args( $args, 4 ) )
     1640            return $this->error;
     1641
    15931642                $this->escape( $args );
    15941643
    15951644                $blog_id        = (int) $args[0];
     
    16621711         * @return array (@see get_taxonomy())
    16631712         */
    16641713        function wp_getTaxonomy( $args ) {
     1714        if( ! $this->minimum_args( $args, 4 ) )
     1715            return $this->error;
     1716
    16651717                $this->escape( $args );
    16661718
    16671719                $blog_id        = (int) $args[0];
     
    17031755         * @return array taxonomies
    17041756         */
    17051757        function wp_getTaxonomies( $args ) {
     1758        if( ! $this->minimum_args( $args, 3 ) )
     1759            return $this->error;
     1760
    17061761                $this->escape( $args );
    17071762
    17081763                $blog_id            = (int) $args[0];
     
    30093064         *  - 'supports'
    30103065         */
    30113066        function wp_getPostType( $args ) {
     3067        if( ! $this->minimum_args( $args, 4 ) )
     3068            return $this->error;
     3069
    30123070                $this->escape( $args );
    30133071
    30143072                $blog_id        = (int) $args[0];
     
    30523110         * @return array
    30533111         */
    30543112        function wp_getPostTypes( $args ) {
     3113        if( ! $this->minimum_args( $args, 3 ) )
     3114            return $this->error;
     3115
    30553116                $this->escape( $args );
    30563117
    30573118                $blog_id            = (int) $args[0];