From 1eb777209d8391391e0a04cf26f283f1d0bfb491 Mon Sep 17 00:00:00 2001 From: Jake Spurlock Date: Tue, 8 Jun 2021 23:23:12 +0000 Subject: [PATCH] Revisions: Check and return errors for insertions to revisions. Fixes #30009. Props rmccue, adamsilverstein, coreymckrill, whyisjake. git-svn-id: https://develop.svn.wordpress.org/trunk@51124 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/revision.php | 2 +- tests/phpunit/tests/post/revisions.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/revision.php b/src/wp-includes/revision.php index 5a090aaf58..630a06d23a 100644 --- a/src/wp-includes/revision.php +++ b/src/wp-includes/revision.php @@ -331,7 +331,7 @@ function _wp_put_post_revision( $post = null, $autosave = false ) { $post = _wp_post_revision_data( $post, $autosave ); $post = wp_slash( $post ); // Since data is from DB. - $revision_id = wp_insert_post( $post ); + $revision_id = wp_insert_post( $post, true ); if ( is_wp_error( $revision_id ) ) { return $revision_id; } diff --git a/tests/phpunit/tests/post/revisions.php b/tests/phpunit/tests/post/revisions.php index 5f0131835f..0487a32d22 100644 --- a/tests/phpunit/tests/post/revisions.php +++ b/tests/phpunit/tests/post/revisions.php @@ -635,4 +635,21 @@ class Tests_Post_Revisions extends WP_UnitTestCase { ); $this->assertSame( $expected, wp_revisions_to_keep( $post ) ); } + + + /* + * Verify that trying to create a revision with an invalid ID returns a WP_Error. + * + * + * @ticket 30009 + */ + public function test_wp_save_post_revision_error() { + $post = self::factory()->post->create_and_get( + array( + 'ID' => PHP_INT_MAX, + ) + ); + $revision = _wp_put_post_revision( $post ); + $this->assertTrue( is_wp_error( $revision ) ); + } }