Make WordPress Core

Changeset 34113

Timestamp:
09/14/2015 04:43:48 AM (9 years ago)
Author:
wonderboymusic
Message:

Add sanity checks in map_meta_cap(), return 'do_not_allow' when posts don't exist.

Adds unit test.

Props ocean90, nerrad, filosofo.
Fixes #23162.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/capabilities-functions.php

    r34091 r34113  
    4848    case 'delete_page':
    4949        $post = get_post( $args[0] );
     50
     51
     52
     53
    5054
    5155        if ( 'revision' == $post->post_type ) {
    5256            $post = get_post( $post->post_parent );
     57
     58
     59
     60
    5361        }
    5462
     
    98106    case 'edit_page':
    99107        $post = get_post( $args[0] );
    100         if ( empty( $post ) ) {
     108        if ( ) {
    101109            $caps[] = 'do_not_allow';
    102110            break;
     
    105113        if ( 'revision' == $post->post_type ) {
    106114            $post = get_post( $post->post_parent );
     115
     116
     117
     118
    107119        }
    108120
     
    150162    case 'read_page':
    151163        $post = get_post( $args[0] );
     164
     165
     166
     167
    152168
    153169        if ( 'revision' == $post->post_type ) {
    154170            $post = get_post( $post->post_parent );
     171
     172
     173
     174
    155175        }
    156176
     
    187207    case 'publish_post':
    188208        $post = get_post( $args[0] );
     209
     210
     211
     212
     213
    189214        $post_type = get_post_type_object( $post->post_type );
    190215        if ( ! $post_type ) {
     
    201226    case 'add_post_meta':
    202227        $post = get_post( $args[0] );
     228
     229
     230
     231
     232
    203233        $caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
    204234
     
    230260    case 'edit_comment':
    231261        $comment = get_comment( $args[0] );
    232         if ( empty( $comment ) )
    233             break;
     262        if ( ! $comment ) {
     263            $caps[] = 'do_not_allow';
     264            break;
     265        }
     266
    234267        $post = get_post( $comment->comment_post_ID );
    235268
  • trunk/tests/phpunit/tests/user/mapMetaCap.php

    r31622 r34113  
    3636        unset( $GLOBALS['wp_post_types'][ $this->post_type ] );
    3737        parent::tearDown();
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
    3848    }
    3949
Note: See TracChangeset for help on using the changeset viewer.