summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2009-09-25 21:13:06 +0000
committerPeter Eisentraut2009-09-25 21:13:06 +0000
commita13f8868e83673345fc75931e423d14555b99f58 (patch)
tree8c1021da88fffed2cae30df9a086212abfbd7398
parent55bdc121893b41dd77cf036e74c587f52c55b695 (diff)
Prevent isolated second surrogate in U& syntax
-rw-r--r--src/backend/parser/scan.l6
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