Solaris testers wanted for strxfrm() behavior

From: Noah Misch <noah(at)leadboat(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Solaris testers wanted for strxfrm() behavior
Date: 2015-06-27 16:51:26
Message-ID: 20150627165126.GB653326@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

convert_string_datum() says:

/*
* Note: originally we guessed at a suitable output buffer size, and
* only needed to call strxfrm twice if our guess was too small.
* However, it seems that some versions of Solaris have buggy strxfrm
* that can write past the specified buffer length in that scenario.
* So, do it the dumb way for portability.

That arrived in commit 59d9a37, and I think this is the background:
http://www.postgresql.org/message-id/flat/3224(dot)1020394610(at)sss(dot)pgh(dot)pa(dot)us

PostgreSQL 9.5 adds a strxfrm() call in bttext_abbrev_convert(), which does
not account for the Solaris bug. I wish to determine whether that bug is
still relevant today. If you have access to Solaris with the is_IS.ISO8859-1
locale installed (or root access to install it), please compile and run the
attached test program on each Solaris version you have available. Reply here
with the program's output. I especially need a report from Solaris 10, but
reports from older and newer versions are valuable. Thanks.

Here is the output on OmniOS r151006, which does not have the bug:

SunOS ip-10-152-178-106.ec2.internal 5.11 omnios-b281e50 i86pc i386 i86xpv
locale "is_IS.ISO8859-1": strxfrm returned 212; last modified byte at 58 (0x0)
locale "is_IS.ISO8859-1": strxfrm returned 212; last modified byte at 58 (0x0)
locale "": strxfrm returned 264; last modified byte at 58 (0x0)

Attachment Content-Type Size
strxfrm-overflow.c text/plain 726 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2015-06-27 18:57:30 Re: Solaris testers wanted for strxfrm() behavior
Previous Message Tom Lane 2015-06-27 16:32:49 pg_file_settings view vs. Windows