diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2012-12-18 15:11:27 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-08 13:01:25 +0100 |
commit | 58985b94679f38bcea15210dbe5dc6e95168ee2b (patch) | |
tree | 5ec86017a6ccd957de792f253aee38cd5ba8097e /src/qml/qml/parser/qqmljslexer.cpp | |
parent | fd4c5b6e1c4ef488e827a1610fd62e1105373a13 (diff) |
Fix unicode escape sequence validation in strings.
Give an error message when the sequence does not conform to the grammar.
Note that both \u and \x (without any numbers following it) are not
valid escape sequences in ECMA5.1.
Change-Id: I14348984c680b0ce86e05faad5630afc1e98cd02
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/parser/qqmljslexer.cpp')
-rw-r--r-- | src/qml/qml/parser/qqmljslexer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/qml/parser/qqmljslexer.cpp b/src/qml/qml/parser/qqmljslexer.cpp index 508d7581be..532826f15c 100644 --- a/src/qml/qml/parser/qqmljslexer.cpp +++ b/src/qml/qml/parser/qqmljslexer.cpp @@ -659,8 +659,11 @@ again: // unicode escape sequence case 'u': u = decodeUnicodeEscapeCharacter(&ok); - if (! ok) - u = _char; + if (! ok) { + _errorCode = IllegalUnicodeEscapeSequence; + _errorMessage = QCoreApplication::translate("QQmlParser", "Illegal unicode escape sequence"); + return T_ERROR; + } break; // hex escape sequence |