Conversation
|
Hello! 👋 Thanks for opening this pull request! Please check out our contributing guidelines. We appreciate you taking the initiative to contribute to this project. Contributing isn't limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation. Here are some useful Composer commands to get you started:
To run a single Behat test, you can use the following command: # Run all tests in a single file
composer behat features/some-feature.feature
# Run only a specific scenario (where 123 is the line number of the "Scenario:" title)
composer behat features/some-feature.feature:123You can find a list of all available Behat steps in our handbook. |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request refines the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Code Review
This pull request refactors path handling in php/WP_CLI/Extractor.php to enhance security and robustness. Key changes include using realpath() for tarball extraction, which also allowed for the removal of the path_is_relative function. Additionally, the rmdir function was updated with a stricter security check to prevent directory traversal vulnerabilities. However, a high-severity issue was identified in the rmdir function's path validation: using getPathname() instead of getRealPath() could lead to incorrect comparisons against the canonical base directory, potentially bypassing the intended security check.
There was a problem hiding this comment.
Pull request overview
This PR refines path handling in WP_CLI\Extractor, aiming to make archive extraction and temporary-directory cleanup more robust and consistent across environments.
Changes:
- Resolve tarball paths via
realpath()before invokingtar, and align tarball validation error messaging. - Harden
Extractor::rmdir()by checking that deleted entries are within the intended base directory. - Remove the now-unused relative-path helper.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
33eb252 to
98ad4b1
Compare
No description provided.