Re: BUG #1545: LIBPQ Windows Version not calling WSACleanup for

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: "Jason Erickson" <jerickso(at)indian(dot)com>, <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #1545: LIBPQ Windows Version not calling WSACleanup for
Date: 2005-05-05 16:17:33
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE6C741B@algol.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>>> The only place WSACleanup is being called is libpqdll when
>the process
>>> detaches the DLL (if the libpq is not staticly linked in),
>which matches up
>>> with the WSAStartup when the process attaches to the DLL.
>>>
>>> The WSAStartup in the fe-connect.c->makeEmptyPGconn() does
>not have a
>>> matching WSACleanup. WSACleanup could possibly be placed
>in freePGconn(),
>>> but unsure if all possible error cases will go through this
>function.
>>>
>>> This problem exists in both 8.0.1 and 7.4.7 of the libpq
>interface for
>>> Windows.
>
>> I agree freePGconn() is the proper place. I will apply the following
>> patch to current CVS and to 8.0.X. 8.0.3 is being packaged now so I
>> will wait for 8.0.4.
>
>Actually ... why do we need a WSAStartup in makeEmptyPGconn?
>If we have
>one in DLL attach, isn't that sufficient?

Not if you link libpq as a static lib...

I *think* that's why it was added. In the beginning it was only in the
DLL attach code, and if you were using the library as a static lib you
had to call it yourself. Not sure when that changed, but clearly that is
when the WSACleanup() call should've gone in.

//Magnus

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2005-05-05 16:23:22 Re: BUG #1545: LIBPQ Windows Version not calling WSACleanup for
Previous Message Tom Lane 2005-05-05 16:12:30 Re: BUG #1545: LIBPQ Windows Version not calling WSACleanup for