Skip to content

Fix: unreachable code typo#56

Merged
paragonie-security merged 1 commit intoparagonie:masterfrom
Grundik:master
May 8, 2024
Merged

Fix: unreachable code typo#56
paragonie-security merged 1 commit intoparagonie:masterfrom
Grundik:master

Conversation

@Grundik
Copy link
Copy Markdown
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
Copy Markdown
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