Add more defensive coding / improve type checking - #600
Merged
Conversation
jrfnl
force-pushed
the
feature/add-more-defensive-coding-typeerrors
branch
2 times, most recently
from
May 13, 2024 11:11
4769b6a to
68e4394
Compare
jrfnl
force-pushed
the
feature/add-more-defensive-coding-typeerrors
branch
2 times, most recently
from
May 14, 2024 06:39
38ec4cb to
b03bf36
Compare
jrfnl
force-pushed
the
feature/start-using-the-new-exceptions
branch
from
May 14, 2024 06:53
10aa322 to
5680552
Compare
jrfnl
force-pushed
the
feature/add-more-defensive-coding-typeerrors
branch
from
May 14, 2024 06:53
b03bf36 to
da71d5a
Compare
jrfnl
force-pushed
the
feature/start-using-the-new-exceptions
branch
2 times, most recently
from
May 20, 2024 18:28
18fb796 to
1c9176d
Compare
Base automatically changed from
feature/start-using-the-new-exceptions
to
develop
May 20, 2024 18:50
Member
Author
jrfnl
force-pushed
the
feature/add-more-defensive-coding-typeerrors
branch
from
May 20, 2024 18:55
da71d5a to
c15cf06
Compare
jrfnl
marked this pull request as ready for review
May 20, 2024 18:55
Add more defensive coding against incorrect stack pointers being passed. It is common to pass the result of a call to `File::findPrevious()` or `File::findNext()` to functions expecting a stack pointer, but these `File` functions can return `false`, which would be juggled to `0` when used in the typical `isset($tokens[$stackPtr])` checks. This would then lead to that check passing, while the value should have been rejected, as the method may now try to act on a completely different token than intended (and more defensive coding should have been added to the originating sniff). Adding a preliminary check to make sure the received parameter is an integer prevents this problem and should surface any such bugs in sniffs using the updated PHPCSUtils methods. Includes tests.
jrfnl
force-pushed
the
feature/add-more-defensive-coding-typeerrors
branch
from
May 20, 2024 19:00
c15cf06 to
33541ff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add more defensive coding against incorrect stack pointers being passed.
It is common to pass the result of a call to
File::findPrevious()orFile::findNext()to functions expecting a stack pointer, but theseFilefunctions can returnfalse, which would be juggled to0when used in the typicalisset($tokens[$stackPtr])checks. This would then lead to that check passing, while the value should have been rejected, as the method may now try to act on a completely different token than intended (and more defensive coding should have been added to the originating sniff).Adding a preliminary check to make sure the received parameter is an integer prevents this problem and should surface any such bugs in sniffs using the updated PHPCSUtils methods.
Includes tests.