]> granicus.if.org Git - postgresql/commit
Fix detection of unfinished Unicode surrogate pair at end of string.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 21 Dec 2016 22:39:32 +0000 (17:39 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 21 Dec 2016 22:39:32 +0000 (17:39 -0500)
commit88e1e91da58422c5cf0e6e2d32f2aa15d75b8de9
tree3495592ba415fb5b3e968e011ae78132c4702fc4
parent4e2477b7b8b6c025d273a316852f2dbf62fff5bc
Fix detection of unfinished Unicode surrogate pair at end of string.

The U&'...' and U&"..." syntaxes silently discarded a surrogate pair
start (that is, a code between U+D800 and U+DBFF) if it occurred at
the very end of the string.  This seems like an obvious oversight,
since we throw an error for every other invalid combination of surrogate
characters, including the very same situation in E'...' syntax.

This has been wrong since the pair processing was added (in 9.0),
so back-patch to all supported branches.

Discussion: https://postgr.es/m/19113.1482337898@sss.pgh.pa.us
src/backend/parser/scan.l