Re: SQLPutData() with a size of zero

Sebastien FLAESCH <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Organization Four Js Development Tools
Message-ID <[email protected]>
Version 0.92.556 seems to fix this problem.
Thank you Frediano.
Seb

On 03/11/2013 05:51 PM, James K. Lowden wrote:
> On Mon, 11 Mar 2013 16:36:52 +0100
> Sebastien FLAESCH<[email protected]>  wrote:
>
>>                           p = (TDS_CHAR *) malloc(len);
>>                   }
>>                   if (!p) {
>>                           odbc_errs_add(&stmt->errs, "HY001",
>> NULL); /* Memory allocation error */ return SQL_ERROR;
>>                   }
>>
>>
>> and here malloc(0) returns zero (AIX 6.1)...
>
> http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.basetechref/doc/basetrf1/malloc.htm#malloc
>
> http://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html
>
> Huh.  Learn something new every day.  I thought malloc could return
> NULL only for failure.  But the standard says,
>
> 	"If size is 0, either a null pointer or a unique pointer that
> can be successfully passed to free() shall be returned. "
>
> It looks like you want _LINUX_SOURCE_COMPAT.  Either that, or change
> the test to
>
> 	if( len&&  !p )
>
> While you're at it, you can remove the casts to to malloc.  We got rid
> of them once, but they keep regenerating.
>
> Thanks for pointing this out, no pun intended.
>
> --jkl
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.