Re: I'm having a crashing problem with FreeTDS under OSX

Daniel Parnell <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Hi James,

Looks like I've got things working on my machine.
What I had to do was replace any calls to strdup with a new function  
tds_strdup.
I also have to replace the call to asprintf in odbc.c with sprintf  
into a character array and a tds_strdup (not too happy about that one).

It's very VERY strange that I should need to do this.  I've tried  
replicating the problem with a smaller application without success.

Daniel

On 08/03/2009, at 3:10 AM, James K. Lowden wrote:

> Hi Daniel,
>
>> I put some printfs in around the free and it appears to be pointing  
>> to
>> a valid date format.
>
> That's interesting. I don't know anything about OS X heap management  
> or
> how an executable is arranged in memory.  My instinct says 0x16 is  
> too low
> for the heap, and free(3) seems to agree.
>
> Looking at the code, there are only a few places where data_fmt is  
> set,
> all of them output of calloc(3) or strdup(3).  I'm sure you see the  
> same
> yourself.  I don't see how FreeTDS could have set that pointer to  
> anything
> that can't be freed.
>
>> If I just comment out the free it then seems to fail on the next free
>> the code hits (and of course leaks;)
>> It is almost as if the heap is getting corrupted
>
> The OS X tool vmmap(1) might be of some help here.  I haven't used it
> myself but it's in the right neighborhood.
>
> I still suspect someone somewhere is trimming off the top 4 bytes of a
> pointer and then having a party.
>
> HTH.
>
> --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.