Skip site navigation (1) Skip section navigation (2)

Re: BUG #3697: utf8 issue: can not reimport a table that was successfully exported.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Marc Mamin" <m(dot)mamin(at)intershop(dot)de>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3697: utf8 issue: can not reimport a table that was successfully exported.
Date: 2007-10-25 16:07:31
Message-ID: 17114.1193328451@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
"Marc Mamin" <m(dot)mamin(at)intershop(dot)de> writes:
> I didn't check if all characters are valid UTF8...

They aren't ...

> select f_utf8_test('(Mozilla/4.0 (compatible; MSIE 6.0; Wind
> \xE0\xF0\xF1\xF2\xE2\xE5\xED\xED\xFB\xE9 \xE2\xFB\xF1\xF8\9
> \xE3\xEE\xF1\xF3\xE4
> xE4\xE6 \xCD\xC1 \xD0\xC1")');

In 8.3 that will throw an error:

utf8=# select f_utf8_test('(Mozilla/4.0 (compatible; MSIE 6.0; Wind
utf8'# \xE0\xF0\xF1\xF2\xE2\xE5\xED\xED\xFB\xE9 \xE2\xFB\xF1\xF8\9
utf8'# \xE3\xEE\xF1\xF3\xE4
utf8'# xE4\xE6 \xCD\xC1 \xD0\xC1")');
WARNING:  nonstandard use of escape in a string literal
LINE 1: select f_utf8_test('(Mozilla/4.0 (compatible; MSIE 6.0; Wind
                           ^
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.
ERROR:  invalid byte sequence for encoding "UTF8": 0xe0f0f1
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
utf8=# 

However, since this behavior isn't backwards-compatible, there's not
much appetite for back-patching it.

I don't think this is a security issue --- if you don't quote
backslashes in untrusted input you'll have problems far worse
than this one.

			regards, tom lane

In response to

Responses

pgsql-bugs by date

Next:From: Marc MaminDate: 2007-10-25 16:21:18
Subject: Re: BUG #3697: utf8 issue: can not reimport a table that was successfully exported.
Previous:From: Gergely BorDate: 2007-10-25 15:16:04
Subject: Re: Yet another problem with ILIKE and UTF-8

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group