
Actually this isn't even working for me. I just compiled the libpq dll with 
/MT (multithreaded), and I still get corruption in my app. I even tried 
libpq compiled with multithreaded-debug (/MTd), which my app is using now, 
and still same problem.  I think a separate function would be great to have.


>From: "Key88 SF" <key88sf@hotmail.com>
>To: pgman@candle.pha.pa.us
>CC: pgsql-hackers@postgresql.org
>Subject: Re: [HACKERS] PQescapeBytea on Win32
>Date: Tue, 18 Mar 2003 05:07:29 +0000
>MIME-Version: 1.0
>X-Originating-IP: [67.118.28.93]
>Received: from relay1.pgsql.com ([64.49.215.129]) by 
>mc5-f2.law1.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Mon, 17 Mar 
>2003 21:07:40 -0800
>Received: from postgresql.org (postgresql.org [64.49.215.8])by 
>relay1.pgsql.com (Postfix) with ESMTPid DB3426F73A1; Tue, 18 Mar 2003 
>00:07:38 -0500 (EST)
>Received: from hotmail.com (f127.law9.hotmail.com [64.4.9.127])by 
>postgresql.org (Postfix) with ESMTP id 0247A474E4Ffor 
><pgsql-hackers@postgresql.org>; Tue, 18 Mar 2003 00:07:25 -0500 (EST)
>Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; 
>Mon, 17 Mar 2003 21:07:30 -0800
>Received: from 67.118.28.93 by lw9fd.law9.hotmail.msn.com with HTTP;Tue, 18 
>Mar 2003 05:07:29 GMT
>X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP
>X-Original-To: pgsql-hackers@postgresql.org
>Message-ID: <F127CGlbZvFqV2mEIkL00001ff2@hotmail.com>
>X-OriginalArrivalTime: 18 Mar 2003 05:07:30.0217 (UTC) 
>FILETIME=[46BFF190:01C2ED0C]
>Precedence: bulk
>Sender: pgsql-hackers-owner@postgresql.org
>Return-Path: pgsql-hackers-owner+M36954@postgresql.org
>
>I suppose that is ok. But the default compiler flags in the provided 
>makefile for libpq is non-multithreaded. That should at least be fixed I 
>would think.
>
>If it's not a big deal for you, I would say that in the name of safety for 
>those people who don't look closely at these things, it would be better to 
>have the callback function to delete the memory and not have to assume 
>libpq is built with the correct c-runtimes...
>
>-Dave
>
>
>
>
>>From: Bruce Momjian <pgman@candle.pha.pa.us>
>>To: Key88 SF <key88sf@hotmail.com>
>>CC: pgsql-hackers@postgresql.org
>>Subject: Re: [HACKERS] PQescapeBytea on Win32
>>Date: Tue, 18 Mar 2003 00:01:38 -0500 (EST)
>>MIME-Version: 1.0
>>Received: from candle.pha.pa.us ([207.106.42.251]) by 
>>mc6-f24.law1.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Mon, 17 
>>Mar 2003 21:01:44 -0800
>>Received: (from pgman@localhost)by candle.pha.pa.us (8.11.6/8.10.1) id 
>>h2I51cW03568;Tue, 18 Mar 2003 00:01:38 -0500 (EST)
>>X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP
>>Message-Id: <200303180501.h2I51cW03568@candle.pha.pa.us>
>>In-Reply-To: <F159qHSgNZuILS94O9J00042a23@hotmail.com>
>>X-Mailer: ELM [version 2.4ME+ PL99 (25)]
>>Return-Path: pgman@candle.pha.pa.us
>>X-OriginalArrivalTime: 18 Mar 2003 05:01:44.0926 (UTC) 
>>FILETIME=[78F0B7E0:01C2ED0B]
>>
>>
>>Yes, I am aware of that limitation.  If you link libpq as a
>>Multithreaded DLL, it will not link libc into each DLL, but have only
>>one libc that can free from anywhere.
>>
>>Is that acceptable or do we need a Win32 specific memory free function?
>>
>>---------------------------------------------------------------------------
>>
>>Key88 SF wrote:
>> >
>> > Hi - there is a problem with PQescapeBytea for Win32. Since libpq is a 
>>DLL,
>> > all memory allocated from within the DLL needs to be freed from within 
>>the
>> > dll.
>> >
>> > PQescapeBytea allocates memory, but there is no function call back into 
>>the
>> > DLL to free this memory. This causes heap corruption when the main 
>>program
>> > tries to free the memory itself. The alternative is to just leak the 
>>memory
>> > and never free it. Also bad....
>> >
>> > -Dave Brown
>> > key88sf@hotmail.com
>> >
>> >
>> > _________________________________________________________________
>> > Add photos to your messages with MSN 8. Get 2 months FREE*.
>> > http://join.msn.com/?page=features/featuredemail
>> >
>> >
>> > ---------------------------(end of 
>>broadcast)---------------------------
>> > TIP 3: if posting/reading through Usenet, please send an appropriate
>> > subscribe-nomail command to majordomo@postgresql.org so that your
>> > message can get through to the mailing list cleanly
>> >
>>
>>--
>>   Bruce Momjian                        |  http://candle.pha.pa.us
>>   pgman@candle.pha.pa.us               |  (610) 359-1001
>>   +  If your life is a hard drive,     |  13 Roberts Road
>>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 
>>19073
>
>
>_________________________________________________________________
>Add photos to your e-mail with MSN 8. Get 2 months FREE*.  
>http://join.msn.com/?page=features/featuredemail
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online  
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963


Tue, 18 Mar 2003 05:20:12 +0000
"Key88 SF" <key88sf@hotmail.com>
Re: PQescapeBytea on Win32

All apps need the multi-threaded option, I think.

---------------------------------------------------------------------------

Key88 SF wrote:
> 
> Actually this isn't even working for me. I just compiled the libpq dll with 
> /MT (multithreaded), and I still get corruption in my app. I even tried 
> libpq compiled with multithreaded-debug (/MTd), which my app is using now, 
> and still same problem.  I think a separate function would be great to have.
> 
> 
> >From: "Key88 SF" <key88sf@hotmail.com>
> >To: pgman@candle.pha.pa.us
> >CC: pgsql-hackers@postgresql.org
> >Subject: Re: [HACKERS] PQescapeBytea on Win32
> >Date: Tue, 18 Mar 2003 05:07:29 +0000
> >MIME-Version: 1.0
> >X-Originating-IP: [67.118.28.93]
> >Received: from relay1.pgsql.com ([64.49.215.129]) by 
> >mc5-f2.law1.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Mon, 17 Mar 
> >2003 21:07:40 -0800
> >Received: from postgresql.org (postgresql.org [64.49.215.8])by 
> >relay1.pgsql.com (Postfix) with ESMTPid DB3426F73A1; Tue, 18 Mar 2003 
> >00:07:38 -0500 (EST)
> >Received: from hotmail.com (f127.law9.hotmail.com [64.4.9.127])by 
> >postgresql.org (Postfix) with ESMTP id 0247A474E4Ffor 
> ><pgsql-hackers@postgresql.org>; Tue, 18 Mar 2003 00:07:25 -0500 (EST)
> >Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; 
> >Mon, 17 Mar 2003 21:07:30 -0800
> >Received: from 67.118.28.93 by lw9fd.law9.hotmail.msn.com with HTTP;Tue, 18 
> >Mar 2003 05:07:29 GMT
> >X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP
> >X-Original-To: pgsql-hackers@postgresql.org
> >Message-ID: <F127CGlbZvFqV2mEIkL00001ff2@hotmail.com>
> >X-OriginalArrivalTime: 18 Mar 2003 05:07:30.0217 (UTC) 
> >FILETIME=[46BFF190:01C2ED0C]
> >Precedence: bulk
> >Sender: pgsql-hackers-owner@postgresql.org
> >Return-Path: pgsql-hackers-owner+M36954@postgresql.org
> >
> >I suppose that is ok. But the default compiler flags in the provided 
> >makefile for libpq is non-multithreaded. That should at least be fixed I 
> >would think.
> >
> >If it's not a big deal for you, I would say that in the name of safety for 
> >those people who don't look closely at these things, it would be better to 
> >have the callback function to delete the memory and not have to assume 
> >libpq is built with the correct c-runtimes...
> >
> >-Dave
> >
> >
> >
> >
> >>From: Bruce Momjian <pgman@candle.pha.pa.us>
> >>To: Key88 SF <key88sf@hotmail.com>
> >>CC: pgsql-hackers@postgresql.org
> >>Subject: Re: [HACKERS] PQescapeBytea on Win32
> >>Date: Tue, 18 Mar 2003 00:01:38 -0500 (EST)
> >>MIME-Version: 1.0
> >>Received: from candle.pha.pa.us ([207.106.42.251]) by 
> >>mc6-f24.law1.hotmail.com with Microsoft SMTPSVC(5.0.2195.5600); Mon, 17 
> >>Mar 2003 21:01:44 -0800
> >>Received: (from pgman@localhost)by candle.pha.pa.us (8.11.6/8.10.1) id 
> >>h2I51cW03568;Tue, 18 Mar 2003 00:01:38 -0500 (EST)
> >>X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP
> >>Message-Id: <200303180501.h2I51cW03568@candle.pha.pa.us>
> >>In-Reply-To: <F159qHSgNZuILS94O9J00042a23@hotmail.com>
> >>X-Mailer: ELM [version 2.4ME+ PL99 (25)]
> >>Return-Path: pgman@candle.pha.pa.us
> >>X-OriginalArrivalTime: 18 Mar 2003 05:01:44.0926 (UTC) 
> >>FILETIME=[78F0B7E0:01C2ED0B]
> >>
> >>
> >>Yes, I am aware of that limitation.  If you link libpq as a
> >>Multithreaded DLL, it will not link libc into each DLL, but have only
> >>one libc that can free from anywhere.
> >>
> >>Is that acceptable or do we need a Win32 specific memory free function?
> >>
> >>---------------------------------------------------------------------------
> >>
> >>Key88 SF wrote:
> >> >
> >> > Hi - there is a problem with PQescapeBytea for Win32. Since libpq is a 
> >>DLL,
> >> > all memory allocated from within the DLL needs to be freed from within 
> >>the
> >> > dll.
> >> >
> >> > PQescapeBytea allocates memory, but there is no function call back into 
> >>the
> >> > DLL to free this memory. This causes heap corruption when the main 
> >>program
> >> > tries to free the memory itself. The alternative is to just leak the 
> >>memory
> >> > and never free it. Also bad....
> >> >
> >> > -Dave Brown
> >> > key88sf@hotmail.com
> >> >
> >> >
> >> > _________________________________________________________________
> >> > Add photos to your messages with MSN 8. Get 2 months FREE*.
> >> > http://join.msn.com/?page=features/featuredemail
> >> >
> >> >
> >> > ---------------------------(end of 
> >>broadcast)---------------------------
> >> > TIP 3: if posting/reading through Usenet, please send an appropriate
> >> > subscribe-nomail command to majordomo@postgresql.org so that your
> >> > message can get through to the mailing list cleanly
> >> >
> >>
> >>--
> >>   Bruce Momjian                        |  http://candle.pha.pa.us
> >>   pgman@candle.pha.pa.us               |  (610) 359-1001
> >>   +  If your life is a hard drive,     |  13 Roberts Road
> >>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 
> >>19073
> >
> >
> >_________________________________________________________________
> >Add photos to your e-mail with MSN 8. Get 2 months FREE*.  
> >http://join.msn.com/?page=features/featuredemail
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 2: you can get off all lists at once with the unregister command
> >    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 
> 
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online  
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> 
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Tue, 18 Mar 2003 00:48:07 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: PQescapeBytea on Win32