"Takahiro Itagaki" wrote:
Bug reference: 5487
Logged by: Takahiro Itagaki
Email address: [email protected]
Description: dblink failed with 63 bytes connection names
Details:
Contib/dblink module seems to have a bug in handling
connection names in NAMEDATALEN-1 bytes.
Bug reference: 5487
Logged by: Takahiro Itagaki
Email address: [email protected]
Description: dblink failed with 63 bytes connection names
Details:
Contib/dblink module seems to have a bug in handling
connection names in NAMEDATALEN-1 bytes.
of snprintf(NAMEDATALEN - 1). It just copies 62 bytes + \0.
In addition, it should be safe to use pg_mbcliplen() to truncate
extra bytes in connection names because we might return invalid
text when a multibyte character is at 62 or 63 bytes.
Note that the fix should be ported to previous versions, too.
It cannot use exiting connections with 63 bytes name
in some cases. For example, we cannot disconnect
such connections. Also, we can reconnect with the
same name and will have two connections with the name.
=# SELECT dblink_connect(repeat('1234567890', 6) || 'ABC',
'host=localhost');
dblink_connect
----------------
OK
(1 row)
=# SELECT dblink_get_connections();
dblink_get_connections
-------------------------------------------------------------------
{123456789012345678901234567890123456789012345678901234567890ABC}
(1 row)
=# SELECT dblink_disconnect(repeat('1234567890', 6) || 'ABC');
ERROR: connection
"123456789012345678901234567890123456789012345678901234567890ABC" not
available
Regards,in some cases. For example, we cannot disconnect
such connections. Also, we can reconnect with the
same name and will have two connections with the name.
=# SELECT dblink_connect(repeat('1234567890', 6) || 'ABC',
'host=localhost');
dblink_connect
----------------
OK
(1 row)
=# SELECT dblink_get_connections();
dblink_get_connections
-------------------------------------------------------------------
{123456789012345678901234567890123456789012345678901234567890ABC}
(1 row)
=# SELECT dblink_disconnect(repeat('1234567890', 6) || 'ABC');
ERROR: connection
"123456789012345678901234567890123456789012345678901234567890ABC" not
available
---
Takahiro Itagaki
NTT Open Source Software Center