beanshell2 icon indicating copy to clipboard operation
beanshell2 copied to clipboard

Unicode Decoding in String/Char Literal Evaluation

Open morris821028 opened this issue 7 years ago • 1 comments

This patch is used to avoid the content of comment make it failed in parser. According to https://github.com/pejobo/beanshell2/issues/112 , there is a solution which move the unicode decode part of readchar() into stringSetup and charSetup.

Maybe we should limit some syntax problem. Please look at https://stackoverflow.com/questions/30727515/why-is-executing-java-code-in-comments-with-certain-unicode-characters-allowed

So, we don't want to parse the beanshell script as follows:

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020
\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079
\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020
\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063
\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028
\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020
\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d

decode above script, and then execute as follows:

public
class Ugly
{public
static
void main(
String[]
args){
System.out
.println(
"Hello w"+
"orld");}}

Summary, in this pull request

  • Only support unicode escapes in string and character literals

morris821028 avatar Apr 19 '18 12:04 morris821028

Thanks,I'll look into this later on. I will close pull request #113 now.

pejobo avatar Apr 20 '18 06:04 pejobo