diff options
| author | Peter Eisentraut | 2009-09-25 21:13:06 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2009-09-25 21:13:06 +0000 |
| commit | a13f8868e83673345fc75931e423d14555b99f58 (patch) | |
| tree | 8c1021da88fffed2cae30df9a086212abfbd7398 /src | |
| parent | 55bdc121893b41dd77cf036e74c587f52c55b695 (diff) | |
Prevent isolated second surrogate in U& syntax
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/parser/scan.l | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 0b8d5f7cd8..1557a300ab 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -1223,6 +1223,9 @@ litbuf_udeescape(unsigned char escape, base_yyscan_t yyscanner) yyerror("invalid Unicode surrogate pair"); } } + else if (is_utf16_surrogate_second(unicode)) + yyerror("invalid Unicode surrogate pair"); + if (is_utf16_surrogate_first(unicode)) pair_first = unicode; else @@ -1253,6 +1256,9 @@ litbuf_udeescape(unsigned char escape, base_yyscan_t yyscanner) yyerror("invalid Unicode surrogate pair"); } } + else if (is_utf16_surrogate_second(unicode)) + yyerror("invalid Unicode surrogate pair"); + if (is_utf16_surrogate_first(unicode)) pair_first = unicode; else |
