summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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