DeserializeJSON does not properly handle uppercase letters in basic multilingual plane values

Description

DeserializeJSON() does not treat the values "\u000B" and "\u000b" the same. Case sensitivity should not matter according to https://www.ietf.org/rfc/rfc4627.txt:

Any character may be escaped. If the character is in the Basic Multilingual Plane (U+0000 through U+FFFF), then it may be represented as a six-character sequence: a reverse solidus, followed by the lowercase letter u, followed by four hexadecimal digits that encode the character's code point. The hexadecimal letters A though F can be upper or lowercase. So, for example, a string containing only a single reverse solidus character may be represented as "\u005C".

https://trycf.com/gist/18cd50e2ee20e9598d5a40ea08311369/lucee5?theme=monokai

Environment

None

Activity

Show:
Pothys - MitrahSoft
October 18, 2019, 8:11 AM
Edited

I've added a test case and fix for this ticket & confirmed the issue happened both affected version(5.3.3.3) and the latest version (5.3.5.20-SNAPSHOT) on lucee when test the uppercase using deseralizeJSON function. So, the Lucee result is different compare to ACF.

Pull request: https://github.com/lucee/Lucee/pull/774

Ryan Deba
November 27, 2019, 3:54 PM

Your pull request is currently closed…is that normal? Or does that mean that it won’t eventually get merged in for a future release? Is there anything I can do to help move this along?

 

Thank you for finding a fix! I was able to apply your changes, but I’d like to get back on a stable release instead of my custom build eventually.

Pothys - MitrahSoft
December 4, 2019, 2:10 PM
Edited

Now, I added a test case and fix with no conflicts.

, For merge please use the below PR.
Pull request: https://github.com/lucee/Lucee/pull/811

Michael Offner
May 1, 2020, 7:26 PM

Michael Offner
May 1, 2020, 7:29 PM

Fixed

Assignee

Michael Offner

Reporter

Ryan Deba

Priority

Major

Labels

Fix versions

Sprint

None

Affects versions