avoid double encoding path params #87003
Open
+24
−1
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.
What?
This encodes and re-decodes the path param before throwing an error from
decodeURIComponent.Why?
More often than not, the error is thrown when a string given to
decodeURIComponenthas already been decoded. This means that a string like%25will already be decoded to%, which results in an error fromdecodeURIComponent. This is also the case for this function. The parameter given is already encoded once, so this function will fail with%25. This PR fixes that by applying the standard solution to this problem: re-encoding, then re-decoding.If
decodeURIComponentstill throws an error, the sameDecodeErroras before is thrown, because that means something different is the culprit.How?
By re-encoding, then re-decoding the string.
Closes NEXT-
Fixes #86957