urlDecode() - throws "Invalid URL encoding" exception

The function urlDecode() throws an exception when the string parameter has invalid characters. The error message is:

Invalid URL encoding: not a valid digit (radix 16): 71

The input string that throws the exception is:

busbar+100a+100%25G

I can confirm that this does not throw an exception in Lucee 5.4.7.3, but it does in Lucee 6.1.1.118 as well as 6.2.1.122.

Should I create a JIRA ticket for this? Seems important since it would be easy to generate a ton of exceptions on any site that calls urlDecode().

Despite Lucee’s Jira asking you to check in the forums before creating a ticket - it is actually their request that you log that the ticket anyway.

Just make sure that you write up as much information as you can.

And if you can - if you were to attach a unit test for the failure - that is especially helpful and oftentimes gets you a faster solution as it means the Lucee team don’t have to write the test and get straight to the testing / troubleshooting stage.

It is quite often the case that you will see a post - much like yours - with a statement along the lines of - "I have logged ticket “XXXX”…

1 Like

please keep posting here first, otherwise, we get a lot of invalid tickets which makes searching jira (even more) frustrating.

@Redtopia please raise a ticket, once you have created a ticket, if you want to go the full mile, filing a PR with a testcase is the gold standard

nice detailed bug report btw :slight_smile:

Ticket was created here LDEV-5560

1 Like

I’ve triaged the ticket, %25 is a % and lucee already automatically decodes the url scope, so you are trying to decode what is strictly a badly encoded url.

https://luceeserver.atlassian.net/browse/LDEV-5560?focusedCommentId=60674

Lucee used to be less strict and ACF likewise, but we switched to a standard library with 6, for better support for various other encoding edge cases

https://luceeserver.atlassian.net/browse/LDEV-4648

1 Like