WordPress.org

Make WordPress Core

Ticket #6772: 6772-absint.diff

File 6772-absint.diff, 6.5 KB (added by mdawaffe, 10 years ago)
  • wp-includes/query.php

     
    515515                if ( ! empty($qv['robots']) )
    516516                        $this->is_robots = true;
    517517
    518                 $qv['p'] =  (int) $qv['p'];
    519                 $qv['page_id'] =  (int) $qv['page_id'];
    520                 $qv['year'] = (int) $qv['year'];
    521                 $qv['monthnum'] = (int) $qv['monthnum'];
    522                 $qv['day'] = (int) $qv['day'];
    523                 $qv['w'] = (int) $qv['w'];
    524                 $qv['m'] =  (int) $qv['m'];
     518                $qv['p'] =  absint($qv['p']);
     519                $qv['page_id'] =  absint($qv['page_id']);
     520                $qv['year'] = absint($qv['year']);
     521                $qv['monthnum'] = absint($qv['monthnum']);
     522                $qv['day'] = absint($qv['day']);
     523                $qv['w'] = absint($qv['w']);
     524                $qv['m'] = absint($qv['m']);
    525525                $qv['cat'] = preg_replace( '|[^0-9,-]|', '', $qv['cat'] ); // comma separated list of positive or negative integers
    526                 if ( '' !== $qv['hour'] ) $qv['hour'] = (int) $qv['hour'];
    527                 if ( '' !== $qv['minute'] ) $qv['minute'] = (int) $qv['minute'];
    528                 if ( '' !== $qv['second'] ) $qv['second'] = (int) $qv['second'];
     526                if ( '' !== $qv['hour'] ) $qv['hour'] = absint($qv['hour']);
     527                if ( '' !== $qv['minute'] ) $qv['minute'] = absint($qv['minute']);
     528                if ( '' !== $qv['second'] ) $qv['second'] = absint($qv['second']);
    529529
    530530                // Compat.  Map subpost to attachment.
    531531                if ( '' != $qv['subpost'] )
     
    533533                if ( '' != $qv['subpost_id'] )
    534534                        $qv['attachment_id'] = $qv['subpost_id'];
    535535
    536                 $qv['attachment_id'] = (int) $qv['attachment_id'];
     536                $qv['attachment_id'] = absint($qv['attachment_id']);
    537537
    538538                if ( ('' != $qv['attachment']) || !empty($qv['attachment_id']) ) {
    539539                        $this->is_single = true;
     
    624624                        if ( !is_array($qv['category__in']) || empty($qv['category__in']) ) {
    625625                                $qv['category__in'] = array();
    626626                        } else {
    627                                 $qv['category__in'] = array_map('intval', $qv['category__in']);
     627                                $qv['category__in'] = array_map('absint', $qv['category__in']);
    628628                                $this->is_category = true;
    629629                        }
    630630
    631631                        if ( !is_array($qv['category__not_in']) || empty($qv['category__not_in']) ) {
    632632                                $qv['category__not_in'] = array();
    633633                        } else {
    634                                 $qv['category__not_in'] = array_map('intval', $qv['category__not_in']);
     634                                $qv['category__not_in'] = array_map('absint', $qv['category__not_in']);
    635635                        }
    636636
    637637                        if ( !is_array($qv['category__and']) || empty($qv['category__and']) ) {
    638638                                $qv['category__and'] = array();
    639639                        } else {
    640                                 $qv['category__and'] = array_map('intval', $qv['category__and']);
     640                                $qv['category__and'] = array_map('absint', $qv['category__and']);
    641641                                $this->is_category = true;
    642642                        }
    643643
    644644                        if (  '' != $qv['tag'] )
    645645                                $this->is_tag = true;
    646646
    647                         $qv['tag_id'] = (int) $qv['tag_id'];
     647                        $qv['tag_id'] = absint($qv['tag_id']);
    648648                        if (  !empty($qv['tag_id']) )
    649649                                $this->is_tag = true;
    650650
    651651                        if ( !is_array($qv['tag__in']) || empty($qv['tag__in']) ) {
    652652                                $qv['tag__in'] = array();
    653653                        } else {
    654                                 $qv['tag__in'] = array_map('intval', $qv['tag__in']);
     654                                $qv['tag__in'] = array_map('absint', $qv['tag__in']);
    655655                                $this->is_tag = true;
    656656                        }
    657657
    658658                        if ( !is_array($qv['tag__not_in']) || empty($qv['tag__not_in']) ) {
    659659                                $qv['tag__not_in'] = array();
    660660                        } else {
    661                                 $qv['tag__not_in'] = array_map('intval', $qv['tag__not_in']);
     661                                $qv['tag__not_in'] = array_map('absint', $qv['tag__not_in']);
    662662                        }
    663663
    664664                        if ( !is_array($qv['tag__and']) || empty($qv['tag__and']) ) {
    665665                                $qv['tag__and'] = array();
    666666                        } else {
    667                                 $qv['tag__and'] = array_map('intval', $qv['tag__and']);
     667                                $qv['tag__and'] = array_map('absint', $qv['tag__and']);
    668668                                $this->is_category = true;
    669669                        }
    670670
     
    871871
    872872                if (isset($q['page'])) {
    873873                        $q['page'] = trim($q['page'], '/');
    874                         $q['page'] = (int) $q['page'];
    875                         $q['page'] = abs($q['page']);
     874                        $q['page'] = absint($q['page']);
    876875                }
    877876
    878877                // If a month is specified in the querystring, load that month
     
    949948                        $where .= " AND WEEK($wpdb->posts.post_date, 1)='" . $q['w'] . "'";
    950949
    951950                if ( intval($q['comments_popup']) )
    952                         $q['p'] = intval($q['comments_popup']);
     951                        $q['p'] = absint($q['comments_popup']);
    953952
    954953                // If an attachment is requested by number, let it supercede any post number.
    955954                if ( $q['attachment_id'] )
    956                         $q['p'] = $q['attachment_id'];
     955                        $q['p'] = absint($q['attachment_id']);
    957956
    958957                // If a post number is specified, load that post
    959958                if ( $q['p'] )
    960959                        $where = " AND {$wpdb->posts}.ID = " . $q['p'];
    961960                elseif ( $q['post_parent'] )
    962                         $where = $wpdb->prepare("AND $wpdb->posts.post_parent = %d ", $q['post_parent']);
     961                        $where = $wpdb->prepare(" AND $wpdb->posts.post_parent = %d ", $q['post_parent']);
    963962                elseif ( $q['post__in'] ) {
    964                         $post__in = "'" . implode("', '", $q['post__in']) . "'";
     963                        $post__in = "'" . implode("', '", array_map( 'absint', $q['post__in'] )) . "'";
    965964                        $where = " AND {$wpdb->posts}.ID IN ($post__in)";
    966965                } elseif ( $q['post__not_in'] ) {
    967                         $post__not_in = "'" . implode("', '", $q['post__not_in']) . "'";
     966                        $post__not_in = "'" . implode("', '", array_map( 'absint', $q['post__not_in'] )) . "'";
    968967                        $where = " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
    969968                }
    970969
     
    12071206                                $eq = '!=';
    12081207                                $andor = 'AND';
    12091208                                $q['author'] = explode('-', $q['author']);
    1210                                 $q['author'] = ''.intval($q['author'][1]);
     1209                                $q['author'] = '' . absint($q['author'][1]);
    12111210                        } else {
    12121211                                $eq = '=';
    12131212                                $andor = 'OR';
    12141213                        }
    12151214                        $author_array = preg_split('/[,\s]+/', $q['author']);
    1216                         $whichauthor .= " AND ($wpdb->posts.post_author ".$eq.' '.intval($author_array[0]);
     1215                        $whichauthor .= " AND ($wpdb->posts.post_author ".$eq.' '.absint($author_array[0]);
    12171216                        for ($i = 1; $i < (count($author_array)); $i = $i + 1) {
    1218                                 $whichauthor .= ' '.$andor." $wpdb->posts.post_author ".$eq.' '.intval($author_array[$i]);
     1217                                $whichauthor .= ' '.$andor." $wpdb->posts.post_author ".$eq.' '.absint($author_array[$i]);
    12191218                        }
    12201219                        $whichauthor .= ')';
    12211220                }
     
    12331232                        }
    12341233                        $q['author_name'] = sanitize_title($q['author_name']);
    12351234                        $q['author'] = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_nicename='".$q['author_name']."'");
    1236                         $whichauthor .= " AND ($wpdb->posts.post_author = ".intval($q['author']).')';
     1235                        $whichauthor .= " AND ($wpdb->posts.post_author = ".absint($q['author']).')';
    12371236                }
    12381237
    12391238                // MIME-Type stuff for attachment browsing
     
    13731372
    13741373                        if ( empty($q['offset']) ) {
    13751374                                $pgstrt = '';
    1376                                 $pgstrt = (intval($page) -1) * $q['posts_per_page'] . ', ';
     1375                                $pgstrt = ($page - 1) * $q['posts_per_page'] . ', ';
    13771376                                $limits = 'LIMIT '.$pgstrt.$q['posts_per_page'];
    13781377                        } else { // we're ignoring $page and using 'offset'
    13791378                                $q['offset'] = absint($q['offset']);