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 >