]> 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)
commitd0f60e4cc5f20bf64ee12d740e52db2773a93c21
tree4b609ee48c9041e22865789a671fa09d14afe28a
parentb5fe1d4cd93d281eef7ab6718716d169609b000a
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