Re: Bug in XPATH() produces invalid XML values and probably un-restorable dumps

Florian G. Pflug <fgp@phlo.org>

From: Florian Pflug <fgp@phlo.org>
To: Florian Pflug <fgp@phlo.org>
Cc: PG Hackers <pgsql-hackers@postgresql.org>
Date: 2011-06-09T18:00:31Z
Lists: pgsql-hackers

Attachments

On May31, 2011, at 20:50 , Florian Pflug wrote:
> While trying to figure out sensible semantics for XPATH() and scalar-value returning XPath expressions, I've stumbled upon a bug in XPATH() that allows invalid XML values to be produced. This is a serious problem because should such invalid values get inserted into an XML column, an un-restorable dump ensues.
> 
> Here's an example (REL9_0_STABLE as of a few days ago)
> 
> template1=# SELECT (XPATH('/*/text()', '<root>&lt;</root>'))[1];
> xpath 
> -------
> <
> 
> ...
> 
> Patch is attached.

I've added two tests to the xml regression test which highlight the issue.

Updated patch attached.

best regards,
Florian Pflug