[freetds] SQLGetData() returns len 4095 for empty TEXT on AIX 6.1 without ClientCharset defined

Sebastien FLAESCH sf at 4js.com
Fri Apr 5 03:09:47 EDT 2013


I am not 100% sure it's a problem in AIX iconv:

Read the man pages of iconv on Linux...


A different case is when inbuf is NULL or *inbuf is NULL, but outbuf is not
NULL and *outbuf is not NULL. In this case, the iconv() function attempts
to set cd's conversion state to the initial state and store a corresponding
shift sequence at *outbuf. At most *outbytesleft bytes, starting at *outbuf,
will be written. If the output buffer has no more room for this reset sequence,
it sets errno to E2BIG and returns (size_t) -1. Otherwise it increments
*outbuf and decrements *outbytesleft by the number of bytes written.


On 04/04/2013 08:43 PM, Frediano Ziglio wrote:
> Found!
> Actually the problem is in iconv AIX implementation, iconv is a function
> like
> size_t iconv(iconv_t cd,
>                      char **inbuf, size_t *inbytesleft,
>                      char **outbuf, size_t *outbytesleft);
> if *inbuf is NULL and *inbytesleft is 0 AIX threat input as an infinite
> buffer with zeroes so it convert an empty string (cause for libTDS view is
> an empty string) to a set of zeroes (actually up to the output buffer which
> is 4095 if you take into account space for terminator).
> The simpler fix is to test and assume empty string if *inbytesleft == 0 in
> tds_iconv.
> Frediano
> 2013/4/2 Sebastien FLAESCH<sf at 4js.com>
>> Ok thanks.
>> We'll setup one of our AIX machines to give you access.
>> Seb
>> On 03/30/2013 04:24 PM, Frediano Ziglio wrote:
>>> Can I have access to one of the AIX machines ??
>>> I'm currently on holidays, I'll be back on Thursday.
>>> Frediano
>> _______________________________________________
>> FreeTDS mailing list
>> FreeTDS at lists.ibiblio.org
>> http://lists.ibiblio.org/mailman/listinfo/freetds
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds

More information about the FreeTDS mailing list