Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: unreachable code typo #56

Merged
merged 1 commit into from
May 8, 2024
Merged

Conversation

Grundik
Copy link
Contributor

@Grundik Grundik commented Jan 18, 2024

In Base64->decodeNoPadding() two conditional checks of $srcLen & 3. But it can't be zero and greater than 1 at the same time, probably that was a typo. As far as I can understand, this is just a check for padding characters in last two places, so second condition was meant as $strLen > 1. But its always true: in previous code it was checked to be not zero, and then checked for $srcLen & 3 (basically "is it divisible by 4?"), so it cant be less than 4 in this branch.

So, I've done light refactoring of this place. Since its an input validation, it should not leak any significant information in context of timing attacks.

@Grundik
Copy link
Contributor Author

Grundik commented Jan 18, 2024

Probably that second check could have been just removed, it does not give anything substantial. Thats why this bug was not noticed.

@paragonie-security paragonie-security merged commit 0288ddd into paragonie:master May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants