Repository navigation
Conversation
- URI: split user/password on the first ':' only and percent-decode them - URI query params and key=value format: split on the first '=' only
This branch has not been deployed
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.
I ran into this issue on my own server, where the database password contained special characters and oxmysql kept failing to connect with a generic
Access deniederror. After tracking it down to the connection string parser, I decided to put together a fix for it.Problem
Passwords containing certain characters are silently mangled when parsing
mysql_connection_string:mysql://root:pa:ss@localhost/dbpamysql://root:p%40ss@localhost/dbp%40ss(never decoded)host=localhost;user=root;password=ab=cdabBecause URI credentials were never percent-decoded, there was no way to use a password containing
#,/or?in the URI format at all.Fix
:only and percent-decode user/password (standard URI behaviour). Invalid sequences (e.g. a literal%) fall back to the raw value, so existing configs keep working.key=value;format: split on the first=only.Tests
Added cases to
tests/unit/config.test.ts; four of them fail onmainand pass with this change.bun test tests/unit: 143 pass.